方法本身接受的不是dict,所以在一个dict前面加上 ** 意思是向方法传入参数:
例如,有dict A = {'name': 'zhangsan', 'age': 18}
方法
def test(name, age):
pass
则可以如此调用:test(**A),此时key会做为参数的名称
同理,如果是一个list,例如:B = ['zhangsan', 18]
可以使用 test(*B) 来传入参数,参数的值按位置来确定;这个参数与上面的A参数效果是一致的
=====================分割线==========================
有的时候,我们需要在函数定义(而非像上面在函数调用)时使用这种特性;此时,我们可以这样来定义函数:
def test_dict(**dict):
pass
这个方法我们可以传入多个参数,但是这多个参数会变成一个dict
例如,我们可以这样使用:test_dict(name='zhangsan', age=18)
那么方法内部我们可以使用参数dict,它的值是{'name': 'zhangsan', 'age': 18}
同理:
def test_list(*list):
pass
这个方法我们也可以传入多个参数,例如 test_list('zhangsan', 18)
则我们可以得到list的值为['zhangsan', 18]