我有一个简单的程序,但我不太明白为什么输出仍然是 0。
x=0
def main():
getX(1,2,x)
print(x)
def getX(v1,v2,x):
if (v1>v2):
v1=x
else:
v2=x
main()
这里的主要问题是getX
它完全没有任何作用。v1
您所做的就是为or分配一个值v2
,这两个值都是本地值,一旦函数结束就会被丢弃。
你可能想要的是这样的:
def getX(v1, v2):
if v1 > v2:
return v1
else:
return v2
x = getX(1, 2)
print(x)
return
给出一个值作为函数的结果,然后您可以在其他地方使用它。您不需要x
初始设置或将其传递给函数,因为函数根本不使用它。
另请注意,这可以通过更改函数内部的分配并global x
用于访问x
您最初定义的模块级别来解决。这是不好的做法,因为通常很难遵循修改全局变量的代码。