您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python赋值运算符优先级-(a,b)= a [b] = {},5

Python赋值运算符优先级-(a,b)= a [b] = {},5

Assignment语句 文档中

赋值语句评估表达式列表(请记住,它可以是单个表达式或逗号分隔的列表,后者产生一个元组),并将单个结果对象从左到右分配给每个目标列表。

您有两个分配目标列表;a, b,和a[b],该值{}, 5从左到右分配给这两个目标。

首先,将{}, 5元组解包到a, b。您现在有a = {}b = 5。注意这{}是可变的。

接下来,您将相同的字典和整数分配给a[b],其中a对字典求值,对b进行求值5,因此您5将字典中的键设置为元组({}, 5)从而创建了循环引用。将{...}由此指相同的对象a已被引用。

由于分配是从左到右进行的,因此您可以将其细分为:

a, b = {}, 5
a[b] = a, b

因此a[b][0]与以下对象相同a

>>> a, b = {}, 5
>>> a[b] = a, b
>>> a
{5: ({...}, 5)}
>>> a[b][0] is a
True
python 2022/1/1 18:39:20 有198人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶