def example(*args, **kwargs):
print('-------------------')
print('args = ', args)
print('kwargs = ', kwargs)
print('-------------------')
if __name__ == '__main__':
example(1, 2, 3)
example(a=1, b=2, c=3)
example(1, 2, 3, a=4, b=5, c=6)
example('a', True, 1, a=1, b='b', c=False)
-------------------
args = (1, 2, 3)
kwargs = {}
-------------------
-------------------
args = ()
kwargs = {'a': 1, 'b': 2, 'c': 3}
-------------------
-------------------
args = (1, 2, 3)
kwargs = {'a': 4, 'b': 5, 'c': 6}
-------------------
-------------------
args = ('a', True, 1)
kwargs = {'a': 1, 'b': 'b', 'c': False}
-------------------
从上面的代码我们可以看到,*args和**kwargs是Python的两个可变参数,前者的类型是tuple,表示多个无名的参数;后者是一个dict,表示关键字参数。
另外,需要注意的是,当同时使用*args和**kwargs时,*args参数要在**kwargs之前,否则会出现报错。
example(1, 2, a=3, 4)
报错
SyntaxError: positional argument follows keyword argument
---------------------
作者:z小白
来源:CSDN
原文:https://blog.csdn.net/zzc15806/article/details/79595108
版权声明:本文为博主原创文章,转载请附上博文链接!