首页 > 解决方案 > 添加到计数器的函数引发局部变量错误

问题描述

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

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

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

标签: pythonfunctionglobal-variablescounterpython-3.6

解决方案


我最近才发现,您可以将属性附加到函数。这将是类似的确切用例。

def counter_adder(rank):
  if rank < 5:
    counter_adder.counter+=1

counter_adder.counter = 0

counter_adder(5)

print(counter_adder.counter)

推荐阅读