Python从入门到高手(内部资源-配学习资料)_哔哩哔哩_bilibili
# 可变参数+关键字参数
# 关键字参数:key+value
def add(a, b=10): # 关键字参数,b为默认值
result = a + b
print(result)
# 调用
add(5)
add(4, 7) # a=4,b=7,此时7就会覆盖b原来的默认值
def add1(a, b=10, c=4):
result = a + b + c
print(result)
add1(1)
add1(1, 5) # 给b赋值
# 给c赋值而不是给b赋值
add(2, 6) # 默认6赋值给b
add1(2, c=6) # 如果想将6赋值给c,则需要结合关键字key使用
# 函数:打印每位同学的姓名和年龄
students = {'001': ('蔡徐坤', 20), '002': ('王源', 19), '003': ('王俊凯', 20), '004': ('易烊千玺', 20)}
def print_boy(name, **persons): # persons=students
print("{}喜欢的小鲜肉是:".format(name))
if isinstance(persons, dict):
values = persons.values()
# print(values)
for name, age in values:
print('{}的年龄是{}'.format(name, age))
# 调用
print_boy('ruirui', **students)
def func(a=1, b=2, c=3):
print(a, b, c)
func()
def func(**kwargs): # key word argument
print(kwargs)
# 调用
func(a=1, b=2, c=3) # 关键字参数
''':cvar
**kwargs说明:只要外面给函数送值,送的必须是key=value
'''
func()
func(a=1)
func(a=1, b=2)
dict = {'001': ('蔡徐坤', 20), '002': ('王源', 19), '003': ('王俊凯', 20), '004': ('易烊千玺', 20)}
func(**dict) # 将字典进行拆包,拆包为关键字参数形式
''':cvar
1 将字典进行拆包
func('001'= ('蔡徐坤', 20), '002'= ('王源', 19), '003'= ('王俊凯', 20), '004'= ('易烊千玺', 20))
2 func里面的参数都是关键字参数
3 将关键字参数再进行一次装包动作
4 装包成功:kwargs,就是装包成功的字典
'''
''':cvar
使用函数的时候:
def aa(**kwargs)
pass
'''
''':cvar
'''
def aa(**kwargs):
print(kwargs)
aa(a=1, b='hello', c='tom') # 装包的过程{'a': 1, 'b': 'hello', 'c': 'tom'}
# 如果在开发的时候,已知一个字典
dict1 = {"a": 1, "b": "hello", "c": "tom"}
aa(**dict1) # 拆包的过程
def bb(a, b, *c, **d):
print(a, b, c, d)
bb(1, 2) # 1 2 () {}
bb(1, 2, 3, 4) # 1 2 (3, 4) {}
bb(1, 2, x=100, y=200) # 1 2 () {'x': 100, 'y': 200}
bb(1, 2, 3, x=100) # 1 2 (3,) {'x': 100}
# bb(1, 2,x=100, 5, 6)