gpt4 book ai didi

python - 理解Python多重赋值

转载 作者:行者123 更新时间:2023-12-01 00:30:12 29 4
gpt4 key购买 nike

考虑这个赋值语句示例:

>>> x, y = x[y] = {}, None
>>> x
{None: ({...}, None)}
>>> y
>>>

分配给 x 的值是多少?该分配如何进行?

最佳答案

该语句将最右侧的值分配给左侧的每个目标,左侧开始。因此,它相当于

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

因此,t 开始时是一个由空 dict 和值 None 组成的元组。

接下来,我们解压 t 并将每个部分分配给 xy:x 绑定(bind)到空 dict,并且 y 绑定(bind)到 None

最后,我们也可以将元组分配给 x[y],因为我们刚刚定义了 xy。键None被添加到x引用的dict中,其值是原始元组。因此,我们让 x[y] 引用 x 本身:一个循环!

Python 可以检测到这个循环,因此它将 dict 显示为 {...},而不是尝试将其无限扩展为 {None: ( {无:({无:...

关于python - 理解Python多重赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58248589/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com