* args 和 **kwargs
这两个变量被称作魔法变量,*args变量可以将列表作为变量引入函数,**kwargs则是把字典作为变量引入函数,这样说好像还是不太具体,举个例子说明下:

 1 # *args
 2 def test_var_args(f_arg,*args):
 3     print(f"f_arg is:",f_arg)
 4     for each_arg in args:
 5         print("*args also have arg is:",each_arg)
 6 test_var_args(1,[3,4,5,6])
 7 #实际上并不是说一定要符合*args 和 **kwargs 的样式 实际上重要的只是前面的*号
 8 
 9 # **kwargs
10 def greet_me(**kw):
11     for key,value in kw.items():
12         print("{0} == {1}".format(key,value))
13 greet_me(name="joeyjoey")

以上两变量使得函数支持接收不定长度的列表和字典,
其实普通也可以直接设定传入列表和参数等等(在python所有)