我必须遗漏一些关于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()
没有更改错误消息。
我做错了什么?什么是正确的方法?
谢谢!
答案 0 :(得分:8)
您需要在函数定义中添加global counter
。 (不在代码的第一行)
您的代码应为
counter = 0
def howManyTimesAmICalled():
global counter
counter += 1
print(counter)
howManyTimesAmICalled()