NameError при вызове метода класса - PullRequest
0 голосов
/ 22 апреля 2019

пытается понять классы и методы в Python 3.7. Я продолжаю выполнять код ниже, но продолжаю получать это NameError, связанное с переменной points, которую я установил в методе initialize класса Stats. Я полагаю, что ошибка является результатом некоторой проблемы с распознаванием локальных / глобальных переменных, но я не могу это понять. У кого-нибудь есть идеи?

class Stats:
    def __init__(self, points, rebounds, assists, steals):
        self.points = points
        self.rebounds = rebounds
        self.assists = assists
        self.steals = steals

    def tripDub(self):
        if points >= 10 and rebounds >= 10 and assists >= 10 and steals >= 10:
            return "Yes!"
        else:
            return "Nope!"

s = Stats(30, 20, 9, 5)
print("Did he earn a Triple Double? Result:", s.tripDub())

Ответы [ 2 ]

4 голосов
/ 22 апреля 2019

Вам нужно self. перед ссылками на переменные экземпляра:

class Stats:
    def __init__(self, points, rebounds, assists, steals):
        self.points = points
        self.rebounds = rebounds
        self.assists = assists
        self.steals = steals

    def tripDub(self):
        if self.points >= 10 and self.rebounds >= 10 and self.assists >= 10 and self.steals >= 10:
            return "Yes!"
        else:
            return "Nope!"


s = Stats(30, 20, 9, 5)
print("Did he earn a Triple Double? Result:", s.tripDub())
3 голосов
/ 22 апреля 2019

Вам нужно сослаться на points, rebounds, assists и steals, используя self в функции tripDub.

Пример: self.points

...