代码优先:
# CASE 01
def test1(x):
x += x
print x
l = [100]
test1(l)
print l
CASE01
输出:
[100, 100]
[100, 100]
没关系!因为 l(列表)是可变的。
然后,
# CASE 02
def test2(x):
x = x + x
print x
l = [100]
test2(l)
print l
CASE02
输出:
[100, 100]
[100]
虽然区别还是可以理解的。
在 x = x + x
方式中,最左边的 x
已被创建/分配为新的。
但是为什么?
如果x += x
和x = x + x
在定义上是一样的,但是为什么会有两个不同的结果呢?
两种方式的细节如何?
谢谢!
最佳答案
x += x
在后台调用 append
,这会改变原始变量
x = x + x
正在为 test2
创建一个本地新变量并设置该值,这不会影响原始 x
关于python - Python 列表中 x += x 和 x = x + x 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44511335/