了解 Python 多重赋值

考虑这个赋值语句示例:


>>> x, y = x[y] = {}, None

>>> x

{None: ({...}, None)}

>>> y

>>>

分配的价值是什么x?这个分配是如何工作的?


繁华开满天机
浏览 145回答 1
1回答

哔哔one

该语句将最右侧的值分配给其左侧的每个目标,从左侧开始。因此,它相当于t = {}, Nonex, y = tx[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: ...。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python