3

好的,我目前正在做一个用python制作二十一点游戏的项目,但遇到了一些麻烦。我的问题之一是我不知道何时将变量定义为全局变量,特别是在带有 if 语句的函数中。如果我在 if 语句之外有一个全局变量,我是否必须声明该变量在 if 语句中也是全局的?例如:

x = 5
def add():
    global x  <--- ?
    x += 1
    if x == 7:
        global x <--- ?
        x = 5

我很确定我需要第一个问号处的“全局 x”,但是第二个问号处呢?如果我希望我的 if 语句更新全局变量,我是否还需要在我的 if 语句中放置一个“全局 x”?或者函数开头的全局 x 是否使 if 语句中的 x 成为全局的?另外,如果我想在这里返回 x,我应该在哪里做呢?

4

1 回答 1

3

只有一个global声明就足够了。

来自文档

global语句是适用于整个当前代码块的声明。

x = 5
def add():
    global x
    x += 1
    if x == 7:
        x = 5

另外,如果我想在这里返回 x,我应该在哪里做呢?

如果你global在你的函数中使用,那么return x必须在global x语句之后,如果你没有使用任何global语句并且也没有定义任何局部变量x,那么你可以return x在函数的任何地方。

如果你定义了一个局部变量x,那么return x必须在定义之后。

于 2013-05-30T01:26:48.267 回答