实际上,关键的是*和**
我们以三个例子来解释:
普通的使用参数:
def test1(arg): print(arg) test1("a") 输出: a
*是将剩下的参数用元祖表示
def test1(arg1,arg2,*args): print(arg1) print(arg2) print(args) test1(1,2,3,"a","b") 输出: 1 2 (3, 'a', 'b')
**是将参数转换成字典进行表示
def test2(**kwargs): print(kwargs) test2(a=1,b=2) 输出: {'a': 1, 'b': 2}
最后,我们结合三种方式:(注意必须按照这种顺序)
def test4(arg1,arg2,*args,**kwargs): print(arg1) print(arg2) print(args) print(kwargs) test4(1,2,3,4,5,a=1,b=2) 输出: 1 2 (3, 4, 5) {'a': 1, 'b': 2}