问题
I must be missing some very basic concept about Python's variable's scopes, but I couldn't figure out what.
I'm writing a simple script in which I would like to access a variable that is declared outside the scope of the function :
counter = 0
def howManyTimesAmICalled():
counter += 1
print(counter)
howManyTimesAmICalled()
Unexpectedly for me, when running I get :
UnboundLocalError: local variable 'counter' referenced before assignment
Adding a global declaration at the first line
global counter
def howManyTimesAmICalled():
counter += 1
print(counter)
howManyTimesAmICalled()
did not change the error message.
What am I doing wrong? What is the right way to do it?
Thanks!
回答1:
You need to add global counter inside the function definition. (Not in the first line of your code)
Your code should be
counter = 0
def howManyTimesAmICalled():
global counter
counter += 1
print(counter)
howManyTimesAmICalled()
来源:https://stackoverflow.com/questions/17928791/python-how-to-reference-a-global-variable-from-a-function