#参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
return 'ok'
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
print(f1(1, 2, 3,4,5,dd='jj'))
#最神奇的是通过一个tuple和dict,你也可以调用上述函数
args = (1, 2, 3, 4)
kw = {'d': 99, 'x': '#'}
print(f1(*args, **kw))
结果:
a = 1 b = 2 c = 3 args = (4, 5) kw = {'dd': 'jj'}
ok
a = 1 b = 2 c = 3 args = (4,) kw = {'d': 99, 'x': '#'}
ok