0
f=1

def skip(i):
    global f +=i
    return

怎么了?

我不知道

>>> f
1
>>> skip(3)
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    skip(3)
  File "C:/Users/PC/Desktop/game.py", line 4, in skip
    f +=i
UnboundLocalError: local variable 'f' referenced before assignment
4

1 回答 1

9

global声明在单独的行中:

def skip(i):
    global f
    f += i

这里return是多余的;我把它关掉了。

global语句将函数中的名称“标记”为全局;这是一个独特的声明,您只能给它一个或多个名称(用逗号分隔):

global foo, bar, baz

将它们放在函数中的哪个位置并不重要,只要它们在自己的一行上。该语句适用于整个函数。global因此,将声明放在顶部是有意义的,以避免混淆。

于 2013-09-14T08:51:13.443 回答