+=
使对象有 就地更改对象。但这取决于的类型x
,这并不意味着对象已就地更改。
这样,+=
仍然需要重新分配 给x
;要么x.__iadd__()
返回x
或新对象返回; x += something
确实翻译成:
x = x.__iadd__(something)
由于+=
包含作业,因此在中x
被标记为本地g()
。
x.extend()
另一方面,这不是一项任务。程序员已决定x
始终是带有.extend()
方法的对象,并直接使用它。Python看不到分配,x
并标记为全局。