1)可变参数
def fun1(*args):
print(*args)
s = 0
for i in args:
s = s + i
return s
# 运行结果
# 2 4 6 8
# result = 20
*args为可变参数,可以接收若干个实参值,并将接受到的值组装为一个元祖
def fun2(name, **kwargs):
print(kwargs)
print(name)
for key in kwargs:
print(key, ":", kwargs[key])
return
fun2('Luo', age = 10, height = 1.55, city = 'Lanxi')
# 运行结果
# {'age': 10, 'height': 1.55, 'city': 'Lanxi'}
# Luo
# age : 10
# height : 1.55
# city : Lanxi
**kwargs为关键字参数,可以接收多组关键字和值的参数,并将它们组装为一个字典。
def fun3(name, *, age, city):
print('name',name)
print('age', age)
print('city', city)
return
fun3('Luo', age = 10, city = 'Lanxi')
# 运行结果
# name Luo
# age 10
# city Lanxi
age, city为命名关键字参数,* 将必选参数name和命名关键字参数分开。
**注意:**不同类型的参数组合时,参数出现的顺序必须按照必选参数,默认参数,可变参数,命名关键字参数和关键字参数的顺序出现。
def fun4(a, b = 1, *c, d, **e):
print('a',a)
print('b', b)
print('c', c)
print('d', d)
print('e', e)
return
kv = {'e1':7,'e2':8}
fun4(1, 2, 3, 4, d=9, **kv)
# 运行结果
# a 1
# b 2·1q
# c (3, 4)
# d 9
# e {'e1': 7, 'e2': 8}