带有if语句的函数中的全局变量

时间:2013-05-30 01:24:40

标签: python variables if-statement global local

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

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

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

1 个答案:

答案 0 :(得分:3)

只有一个global语句就足够了。

来自docs

  

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必须在定义之后。