NameError: имя 'count' не определено - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь получить значение глобальной переменной «count», вызывая функцию «увеличить», но выдает ошибку «NameError: имя« count »не определено». Что я делаю не так?

class sampleclass: 
  count = 0  # class attribute 

  def increase(self):
    global count 
    count += 1

# Calling increase() on an object 
s1 = sampleclass() 
s1.increase()        
print(s1.count)

Ответы [ 2 ]

2 голосов
/ 01 августа 2020

Попробуйте следующее:

class sampleclass: 
  count = 0  # class attribute 

  def increase(self):
    self.count += 1

# Calling increase() on an object 
s1 = sampleclass() 
s1.increase()        
print(s1.count)

Вы не можете получить доступ к count с помощью global. Вы должны использовать self. Или , если вы хотите быть явным, сделайте следующее:

class sampleclass: 
  count = 0  # class attribute 

  def increase(self):
    sampleclass.count += 1

# Calling increase() on an object 
s1 = sampleclass() 
s1.increase()        
print(s1.count)

Вы можете сделать это, потому что count - это переменная класса. Вы также можете получить доступ к count извне этого класса.

0 голосов
/ 01 августа 2020

Как вы уже написали, это атрибут класса в комментариях в вашем коде.

class sampleclass: 
  count = 0  # class attribute 

  def increase(self):
      sampleclass.count += 1

# Calling increase() on an object 
s1 = sampleclass() 
s1.increase()        
print(s1.count)

Я бы рекомендовал сделать его как атрибут объекта

...