代码之家  ›  专栏  ›  技术社区  ›  gwydion93

要添加到计数器的函数引发局部变量错误

  •  0
  • gwydion93  · 技术社区  · 6 年前

    counter = 0
    

    如果我只是这样做,我会得到以下错误:

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

    UnboundLocalError:赋值前引用了局部变量'in\u in'

    我可以通过添加 global 函数中的变量:

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Dschoni    6 年前

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