添加到计数器的函数抛出局部变量错误

时间:2018-10-05 12:19:03

标签: python function global-variables counter python-3.6

我正在尝试创建一个添加到简单变量计数器的函数。

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

但是,我听说这很糟糕(为什么?),想知道是否有更好的方法来做到这一点?

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)