一般的函数参数是位置参数,位置不对会出问题
1.关键字参数
使用参数名提供的参数就是关键字参数,有了关键字参数,顺序就不会有影响。
>>>def printGrade(name,ID,grade):
print("{0}(1)'s garde is{2}.".format(name,ID,grade))
>>>printGrade(name='jerry',garde='b',ID='1005')
jerry(1005)'s grade is b
2.默认参数
在定义函数时可以给某些参数设定默认值
>>>def area(r,pi=3.14159):
return pi*r*r
#带默认参数位置的参数可以不写
>>>area(3)
28.74309999999996
#默认参数值在调用时也可以修改
>>>area(4,3.14)
50.24
#调用时也可以利用关键字改变参数顺序
>>>area(pi=3.14,r=4)
50.24
3.可变长参数
python中允许一组数据给一个形参
>>>def greeting(arg1,*tupleArgs):
print(args1)
print(tupleArgs)
>>>greeting('hello','a','b','c')
hello
('a','b','c')
tupleArgs前的*是可变位置参数的标记,用来收集其余的位置参数,将它们放到一个元组中
推荐使用下面方式进行调用
>>>def greeting(arg1,*tupleArgs):
print(args1)
print(tupleArgs)
>>>name=('a','b','c')
>>>greeting('hello',*name)
hello
('a','b','c')
4.可变长的关键字参数
用两个星号表示可变长的关键字参数
>>>def assignment(**dict):
print(dict)
#调用方式1
>>>assignment(x=1,y=2,z=3)
{'x':1,'z':3,'y':2}
#调用方式2
>>>data('x':1,'y':2,'z':3)
assignment(**data)
{'x':1,'z':3,'y':2}