Python - 如何从函数引用全局变量

时间:2013-07-29 16:05:51

标签: python scope

我必须遗漏一些关于Python变量范围的基本概念,但我无法弄清楚是什么。

我正在编写一个简单的脚本,我希望在该脚本中访问在函数范围之外声明的变量:

counter = 0

def howManyTimesAmICalled():
    counter += 1
    print(counter)

howManyTimesAmICalled()

出乎我意料,跑步时我得到了:

UnboundLocalError: local variable 'counter' referenced before assignment

在第一行添加全局声明

global counter
def howManyTimesAmICalled():
    counter += 1
    print(counter)

howManyTimesAmICalled() 

没有更改错误消息。

我做错了什么?什么是正确的方法?

谢谢!

1 个答案:

答案 0 :(得分:8)

您需要在函数定义中添加global counter。 (不在代码的第一行)

您的代码应为

counter = 0

def howManyTimesAmICalled():
    global counter
    counter += 1
    print(counter)

howManyTimesAmICalled()