我正在尝试创建一个添加到简单变量计数器的函数。
counter = 0
如果我只是这样做,就会出现以下错误:
def counter_adder(rank):
if rank < 5:
counter = counter + 1
UnboundLocalError:赋值之前引用了本地变量'in_in'
我可以通过在函数内添加一个global
变量来使其工作:
def counter_adder(rank):
global counter
if rank < 5:
counter = counter + 1
但是,我听说这很糟糕(为什么?),想知道是否有更好的方法来做到这一点?
答案 0 :(得分:1)
我最近才发现,您可以将属性附加到函数中。这就是类似这样的确切用例。
def counter_adder(rank):
if rank < 5:
counter_adder.counter+=1
counter_adder.counter = 0
counter_adder(5)
print(counter_adder.counter)