可以说我有:
[obj for (_, obj) in stack]
Run Code Online (Sandbox Code Playgroud)
此代码假定第一个对象stack是元组,并丢弃元组的第一部分。
如果代码不是元组,而是单个对象,会发生什么?
它是否只是忽略扔掉的部分并拿走整个物体?
_ 这只是一个约定,任何其他名称的行为方式都相同。
Name_只是指向解压元组的第一个元素。当该名称超出范围引用时,计数器减少,没有其他命名引用“解包元组的第一个元素”,并且该对象可以安全地进行垃圾收集。
由于_这只是约定,因此尝试解包 tuple with 的_行为将与任何其他名称相同 - 它会引发异常,以下之一:
a, b = 1 # TypeError: 'int' object is not iterable
a, b = () # ValueError: need more than 0 values to unpack
a, b = (1, 2, 3) # ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7118 次 |
| 最近记录: |