Python赋值运算符不同于非赋值运算符

Python赋值运算符不同于非赋值运算符,第1张

Python赋值运算符不同于非赋值运算符

l += ...
实际上是调用
object.__iadd__(self, other)
和修改对象
in-place
l
可变的

原因(如@DeepSpace在他的评论中解释的)是,当您执行

l += {'a':2}
*** 作
l
,仅在
l
可变的情况下才进行 *** 作更新。另一方面,由于 *** 作
l + {'a': 2}
未正确完成,导致
list + dictionary-> TypeError


(请参阅此处)


l = [1]l = l.__iadd__({'a': 2})l#[1, 'a']

+
那个电话不一样
object.__add__(self, other)

l + {'B': 3}TypeError: can only concatenate list (not "dict") to list


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5666137.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存