考虑这个赋值语句示例:>>> x, y = x[y] = {}, None>>> x{None: ({...}, None)}>>> y>>>分配的价值是什么x?这个分配是如何工作的?
1 回答
哔哔one
TA贡献1854条经验 获得超8个赞
该语句将最右侧的值分配给其左侧的每个目标,从左侧开始。因此,它相当于
t = {}, None
x, y = t
x[y] = t
所以,t开始是一个由空dict和值组成的元组None。
接下来,我们解包t并将每个部分分配给xand y:x绑定到 empty dict,并且y绑定到None。
最后,我们也可以将元组分配给x[y]as,因为我们刚刚定义了x和y。键None被添加到被dict引用的x对象中,它的值是原始元组。因此,我们x[y]对自身进行了引用x:一个循环!
Python 可以检测到这个循环,所以它显示dict为{...},而不是试图将其无限扩展为{None: ({None: ({None: ...。
添加回答
举报
0/150
提交
取消