关键字参数,key=value
def add(a,b=10):
result = a + b
print(result)
add(5)
输出: 15
def add(a,b=10):
result = a + b
print(result)
add(4,7)# 原来的默认参数值会被覆盖
输出:11
def add(a, b=10, c=4):
print(a, b, c)
result = a + b + c
print(result)
add(1,5) # 此时是给a和b赋值成功
#如何给c赋值而不是b
add(2, c=6) # 通过关键字key来给c赋值
输出:18
**kwargs的使用:
def func(**kwargs):# **kwargs也是可变参数,需要结合关键字参数来使用,送的值必须是key=value的格式
print(kwargs)
func(a=1,b=2,c=3)
输出:
{'a': 1, 'b': 2, 'c': 3}
def func(**kwargs):
print(kwargs)
dict1 = {'001':'python','002':'python3'}
func(**dict1) #传递实参时,**会将字典进行拆包
输出:
{‘001’: ‘python’, ‘002’: ‘python3’}
def print_boy(name,**persons):#装包
print('{}喜欢的是:'.format(name))
if isinstance(persons,dict):
values = persons.values()
for name,age in values:
print('{}的年龄是:{}'.format(name,age))
print_boy('rui',**students)# 拆包
输出:
rui喜欢的是:
蔡徐坤的年龄是:20
王源的年龄是:19
王俊凯的年龄是:20
总结:注意一下区别:
def aa(a,b,*c,**d): #a,b是必须给的项,*c是可变的参数,元组;**d是可变的参数,关键字型
print(a,b,c,d)
aa(1,2)
aa(1,2,3,4)
aa(1,2,x=100,y=200)
aa(1,2,3,x=100)
输出:
1 2 () {}
1 2 (3, 4) {}
1 2 () {'x': 100, 'y': 200}
1 2 (3,) {'x': 100}