python 方法调用和定义时候**与*的作用

方法本身接受的不是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]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容