在Python中使用函数外的变量
这是一个非常简单的问题,我相信我以前知道,但现在可能忘记了。
当我运行这段代码时:
x = 0
def run_5():
print "5 minutes later"
x += 5
print x, "minutes since start"
run_5()
print x
我收到的错误是“x没有定义”。我该如何在函数内使用x,并且让它在函数外也能生效呢?
4 个回答
1
为了确保清楚,第四行提到的那个没有定义的x,是不是最后一行的那个。
在函数外面的x还是存在的,并没有受到影响。问题出在函数里面的那个x,因为在你尝试用+=这个操作符去给它加东西的时候,Python认为它根本不存在。
9
在函数的开头加上 global x
。
不过,你要想想你是不是真的需要这样做——其实从函数里返回一个值会更好。
10
只是返回一个值吗?
x = 0
def run_5():
print "5 minutes later"
x += 5
return x
x=run_5()
print x