在Python中使用函数外的变量

4 投票
4 回答
28527 浏览
提问于 2025-04-16 05:19

这是一个非常简单的问题,我相信我以前知道,但现在可能忘记了。

当我运行这段代码时:

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

撰写回答