python的参数分为:必选参数、默认参数(缺省值)、可选参数、关键字参数。
必选参数:必传
def getAdd(a, b): #形式参数,形参
sum = a + b
print(sum)
getAdd(19, 20) #实际参数,实参
默认参数(缺省值):默认参数必须放在后面
def getAdd(a=10, b=1):
sum=a+b
print(sum)
getAdd()
getAdd(2)
getAdd(3,4)
结果分别为11,3,7
def getAdd(a, b=1):
sum=a+b
print(sum)
# getAdd() 不能这样调用,a参数是必传参数
getAdd(2)
getAdd(3,4)
结果分别为3,7
可选参数:
def getAdd(*args):
print(args)
getAdd(1)
getAdd(1,2,3,4,5)
结果为:
(1,)
(1, 2, 3, 4, 5)
def getSum(*args):
result = 0
for item in args:
result += item
print('result=%d'%result)
getSum(1)
getSum(1,2)
getSum(1,2,3,4,5,6,7)
结果分别为:
result=1
result=3
result=28
关键字参数:也是可变的
参数关键字是一个字典类型,key是一个字符串
def keyFunc(**kwargs):
print(kwargs)
# keyFunc(1,2,3) 不可以这样传
dictA = {'name':'kimi','age':10}
keyFunc(**dictA) # 调用字典对象时,前面必须加**
keyFunc(name='小明', age=20)
keyFunc()
结果分别为:
{'name': 'kimi', 'age': 10}
{'name': '小明', 'age': 20}
{}
组合使用:
可选参数必须放在关键字参数之前;
可选参数接受的数据是一个元组类型;
关键字参数接受的数据是一个字典类型。
def compFunc(*args, **kwargs):
print(args, kwargs)
compFunc(1,2,3,4)
compFunc(name='lily')
compFunc(1,2,3,name='tom')
结果分别为:
(1, 2, 3, 4) {}
() {'name': 'lily'}
(1, 2, 3) {'name': 'tom'}