是。根据类型的x
编码方式,简短形式可以选择就地修改x,而不是创建一个表示和的新对象,然后将其重新绑定为相同的名称。如果您有多个变量都引用同一个对象(例如带有列表的变量),则这意味着:
>>> a = b = []
>>> a += [5]
>>> a
[5]
>>> b
[5]
>>> a = a + [5]
>>> a
[5, 5]
>>> b
[5]
这是因为在幕后,运营商调用不同的魔术方法:+
电话__add__
或__radd__
(这是预期不对其进行修改其参数),并+=
尝试__iadd__
(这是不允许修改self
,如果它感觉就像是)回落至之前+
如果逻辑__iadd__
ISN不在那里。