当前位置: 首页 > news >正文

* 和**有时展开,有时收集。*在对可迭代对象展开 **对字典展开。一般只看收集就够了,在函数定义的时候传入参数用

1. *** 的两种语境

(1)函数调用 / 构造字面量 → 展开 (unpack)

在函数调用、列表/集合/字典的构造里,*** 表示「把里面的东西拆开来」。

def f(x, y, z): passt = (1, 2, 3)
f(*t)   # 拆开成 f(1, 2, 3)d = {"x": 10, "y": 20}
f(**d)  # 拆开成 f(x=10, y=20)

(2)变量赋值 / 参数定义 → 收集 (pack)

在「接收」参数或「解构赋值」时,* / ** 变成了「收集器」:

# 解构赋值
a, *b, c = [1, 2, 3, 4, 5]
# *b 收集中间的所有元素
print(a)  # 1
print(b)  # [2, 3, 4]
print(c)  # 5# 参数定义
def g(x, *args, **kwargs):print("args:", args)print("kwargs:", kwargs)g(1, 2, 3, y=10, z=20)
# args 收集 (2, 3)
# kwargs 收集 {"y": 10, "z": 20}

所以:

  • 调用 / 构造时 → 拆开(unpack)。

  • 赋值 / 定义时 → 收集(pack)。

http://www.dtcms.com/a/360426.html

相关文章:

  • 第二十七天-ADC模数转换实验
  • linux系统学习(12.linux服务)
  • 【星闪】Hi2821 | SPI串行外设接口 + OLED显示屏驱动例程
  • 语音芯片3W输出唯创知音WTN6040FP、WT588F02BP-14S、WT588F04AP-14S
  • [回溯+堆优化]37. 解数独
  • Q1 Top IF 18.7 | 基于泛基因组揭示植物NLR进化
  • 高校心理教育辅导系统的设计与实现|基于SpringBoot高校心理教育辅导系统的设计与实现
  • 网格图--Day02--网格图DFS--面试题 16.19. 水域大小,LCS 03. 主题空间,463. 岛屿的周长
  • 技术总体方案设计思路
  • SAP报工与收货的区别(来自deepseek)
  • c++ 二维码、条形码开发实例
  • FFMPEG学习任务
  • 为什么计算机使用补码存储整数:补码的本质
  • 自定义AXI_PWM_v1.0——ZYNQ学习笔记15
  • Ultra Low Power Transceiver for Wireless Body Area Networks中文版
  • Makefile语句解析:头文件目录自动发现与包含标志生成
  • Day 01(01): Hadoop与大数据基石
  • RPC个人笔记(包含动态代理)
  • Qwen2.5-VL代码初步解读
  • 一个从7zip中分离出来的高压缩比文本压缩工具ppmd
  • 使用PowerShell监听本地端口
  • 多线程案例、线程池
  • QT6(QStandardItemModel和QTableView及自定义代理)
  • 第3章 乱码的前世今生-字符集和比较规则
  • 部署在windows的docker中的dify知识库存储位置
  • 常见线程池的创建方式及应用场景
  • Cookie、Session 和 JWT
  • 【K8s-Day 22】深入解析 Kubernetes Deployment:现代应用部署的基石与滚动更新的艺术
  • 服装管理软件与工厂计件系统精选
  • 【OpenGL】LearnOpenGL学习笔记18 - Uniform缓冲对象UBO