我在查找Python中的错误时遇到了麻烦,我在其他语言中没有得到支持函数式编程的错误。我有以下代码:
def call_once(func):
called = False
def aux(*args, **kwargs):
if called:
raise Exception("This function was already called.")
else:
called = True
return func(*args, **kwargs)
return aux
@call_once
def add(x, y):
return x + y
但是,如果我有:
add(1, 2)
我明白了:
UnboundLocalError: local variable 'called' referenced before assignment
这里发生了什么?