Функция для добавления в счетчик выдает ошибку локальной переменной - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь создать функцию, которая добавляет простой счетчик переменных.

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 голосов
/ 05 октября 2018

Я только недавно узнал, что вы можете прикреплять атрибуты к функциям.Это был бы точный вариант использования для чего-то подобного.

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

counter_adder.counter = 0

counter_adder(5)

print(counter_adder.counter)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...