Python python *args 和 **kwargs

yueyue · 2022年02月14日 · 最后由 大海 回复于 2022年02月14日 · 3373 次阅读

*args 将参数打包成 tuple 给函数体调用
**kwargs 将参数打包成 dict 给函数体调用

def param_case(*args, **kwargs):
    print("==args {}".format(args),type(args),len(args))
    print("==kwargs {}".format(kwargs),type(kwargs),len(kwargs))


if __name__ == '__main__':
    print("不带参数==========")
    param_case()
    print("args传参==========")
    param_case({"姓名":"hedy"},{"性别":"女"})
    print("kwargs传参==========")
    param_case(a=3)
    print("同时传参==========")
    param_case(0, a=3, b=9)
不带参数==========
==args () <class 'tuple'> 0
==kwargs {} <class 'dict'> 0
args传参==========
==args ({'姓名': 'hedy'}, {'性别': ''}) <class 'tuple'> 2
==kwargs {} <class 'dict'> 0
kwargs传参==========
==args () <class 'tuple'> 0
==kwargs {'a': 3} <class 'dict'> 1
同时传参==========
==args (0,) <class 'tuple'> 1
==kwargs {'a': 3, 'b': 9} <class 'dict'> 2
共收到 5 条回复 时间 点赞

加了星号 * 的参数会以元组 (tuple) 的形式导入,存放所有未命名的变量参数
加了两个星号 ** 的参数会以字典的形式导入

LUA 回复

get~~

陈恒捷 回复

谢谢指点~

陈恒捷 回复

解答得深入😀

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册