有人可以解释为什么python在以下两种情况下表现不同的原因吗?非常欣赏。
def modifyNone(x):
print("B4:"+str(x))
# x.append(5)
x=[5]
print("In:"+str(x))
a = []
modifyNone(a)
print("After:"+str(a))
输出:
B4:[]
In:[5]
After:[]
方法:
def modifyNone(x):
print("B4:"+str(x))
x.append(5)
# x=[5]
print("In:"+str(x))
a = []
modifyNone(a)
print("After:"+str(a))
输出:
B4:[]
In:[5]
After:[5]
答案 0 :(得分:3)
Python是按值传递的,因此您必须重新分配返回的值,如下所示:
a = modifyNone(a) # where the function returns a value
您似乎也不了解变量范围,请尝试使用文档。