首页 新闻 会员 周边 捐助

python打包拆包

0
[已解决问题] 解决于 2025-09-08 13:52
  1. 定义阶段——形参里的 **打包/收集
  2. def foo(**kw):      # 这里的 ** 把调用者传来的所有 key=value 收成一个 dict
        print(type(kw), kw)
    • 这个位置只做“装袋子”一件事:遇到 a=1, b=2 就得到 {'a':1, 'b':2}
  1. 调用阶段——实参里的 ** 才是 拆包/展开
  2. d = {'x': 10, 'y': 20}
    foo(**d)            # 这里的 ** 把字典拆成 x=10, y=20 再送进去
    拆完后效果等价于 foo(x=10, y=20)
    形参 **kw 收集,实参 **dict 散发;方向不同,运算符一样而已。

     

    场景*args**kwargs
    定义(形参) 把多余位置实参打包成 tuple 把多余关键字实参打包成 dict
    调用(实参) 可迭代对象拆成单个位置实参 字典拆成单个关键字实参
_java_python的主页 _java_python | 小虾三级 | 园豆:938
提问于:2025-09-08 13:45
< >
分享
最佳答案
0

调用时必须展开(解包),调用后必须合并(打包)----同时具有两个作用

*args ,**kwargs

 

*dic是对字典得keys展开合并 等价于 *dic.keys()

*dic.values()是对字典得所有values展开合并

*dic.items()是字典得key,value元组展开合并

_java_python | 小虾三级 |园豆:938 | 2025-09-08 13:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册