Required Parameters
def enroll (name, gender):
print ' name: ', Name, ' Gender: ', Gender
enroll (' Bob ', ' M ')
enroll (' Lily ', ' F ')
Output
Name:bob gender:m
name:lily gender:f
Default Parameters
def enroll (name, gender, age = 8, city = ' Hangzhou '):
print ' name: ', Name, ' Gender: ', Gender, ' age: ', CI Ty
enroll (' Bob ', ' m ')
enroll (' Lily ', ' F ', 9)
enroll (' Jack ', ' m ', city = ' Shanghai ')
Output
Name:bob gender:m age:8 City:hangzhou
name:lily gender:f age:9 city:hangzhou name:jack gender:m age:8
City:shanghai
Summary: Before the required parameters are selected, the default parameter has more than one parameter in the following function. Change the big parameter to put the front, the change small parameter to put behind, the change small parameter can be set as the default parameter has multiple default parameters, you can supply the default parameters in order, or not in order to provide partial default parameters, when not in order to provide partial default parameters, The name of the parameter must be described
def add_end (list=[]):
list.append (' End ') return
list
print add_end ()
print add_end ()
print add_ End ()
Output
[' End ']
[' End ', ' End ']
["End", "End", "End"]
Explanation: The function is instance, when the function is defined, the default argument is determined, when the function is invoked, if the default argument is changed to the object value, the default parameter is no longer the initial value of the function definition, so the default argument must point to the immutable object, otherwise the run will have a logical error
variable Parameters
def calsum (*args):
sum = 0
for num in args:
sum = sum + num return
sum
print calsum (), Calsum (1), C Alsum (1, 9), Calsum (1, 9,)
odd_list = [1, 3, 5, 7, 9]
even_tuple = (2, 4, 6, 8, ten)
color_dict = {1: ' Red ', 2: ' Green ', 3: ' Blue '}
prime_set = ([2, 3, 5, 7])
print calsum (*odd_list), Calsum (*even_tuple), Calsum (*color _dict), Calsum (*prime_set)
Output
0 1
25 30 6 17
Summary: The definition of the variable name variable parameters is essentially assembled into a tuple to the function of the internal deformation parameter list,tuple,dict,set, such as container types, as the argument to the deformable parameters, the front Plus * can be converted to tuple to the deformable parameters, Dict and set are key assembled into tuple
keyword Parameters
def enroll (name, age, **kw):
print ' name: ', Name, ' Age: ', age, ' other: ', kw
enroll (' Bob ', @)
enroll (' Jack ', City = ' Hangzhou ')
enroll (' Martin ', gender = ' M ', job = ' engineer ') dict = "City
": ' Shanghai ', ' job ': ' Do ctor '}
Enroll (' Tom ', **dict)
Output
Name:bob age:10 Other: {} Name:jack age:20, {' City
': ' Hangzhou '}
name:martin age:30, other: {' Gender ': ' M ', ' job ': ' Engineer '}
name:tom age:40: {' City ': ' Shanghai ', ' job ': ' Doctor '}
Summary: Define keyword parameters with * * Variable name keyword arguments are essentially assembled into dict to pass to the key glyph parameters inside the function dict as arguments to the key glyph parameters, the front plus * can
parameter Application
Def Mixarg (A, b, c = 0, *args, **kw):
print ' A = ', A, ' B = ', B, ' C = ', C, ' args = ', args, ' kw = ', kw
Mixarg (1, 2) C2/>mixarg (1, 2, c = 3)
Mixarg (1, 2, 3, ' A ', ' B ')
Mixarg (1, 2, 3, ' A ', ' B ', x =)
args = (1, 2, 3, 4)
kw = {' X ': Mixarg}
(*args, **kw)
Output
A = 1 b = 2 c = 0 args = () kw = {}
a = 1 b = 2 c = 3 args = () kw = {}
a = 1 b = 2 c = 3 args = (' A ', ' b ') kw = {
A = 1 b = 2 c = 3 args = (' A ', ' b ') kw = {' X ': n '
a = 1 b = 2 c = 3 args = (4,) kw = {' X ': 98}
Summary: Required parameters, default parameters, variable parameters, keyword parameters can be used in any combination, but the order of parameter definitions must be: When required, default, variable, or keyword parameter function calls, the interpreter automatically passes the corresponding parameter to any function by parameter position and parameter name, and can be passed through a similar mixarg (* args, **kw) Form invocation, regardless of the parameter is how to define the default parameters must be used with mutable objects, if it is a mutable object, the operation will have a logical error *args is a variable parameter, args receive a tuple, variable parameters can be directly passed, can also be assembled first list,tuple, Dict,set and other container types, and then through the *args incoming **kw is the keyword parameter, KW received is a dict, keyword parameters can be directly passed in, can also be assembled dict, and then through the **kw into the *args and **kw is Python idioms, Of course, there are other parameter names, but it's best to use custom notation