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