Ошибка: NameError: имя 'self' не определено (даже после определения его в основном методе) - PullRequest
0 голосов
/ 17 марта 2020

Я новичок в объектно-ориентированном python, и я столкнулся с ошибкой, сказав, что NameError: имя 'self' не определено. Я искал много статей, но не смог решить.

Извините, если мой код выглядит глупым, это мои первые несколько дней с python. Поэтому я хочу использовать методы addStacks, setMentorOrLearner, setAvailableTime для хранения данных и метод getMentor для доступа к данным из переменных в __init__ и использовать их в методе getMentor. Вот код:

class MyClass():
    def __init__(self):
        self.interest_expertise={}
        self.time = 0
        self.endtime = 0
        self.role = ''

    def addStacks(self):
        self.interest_expertise=input("Enter area of Interest/Expertise")

    def setMentorOrLearner(self):
        self.role = input("Enter whether you are a Mentor or Student")


    def setAvailableTime(self):
        if role.equals("Mentor"):
            self.time = int(input("Enter hour of start (Kindly use 24 hour format)"))
            self.endtime= int(input("Enter hour of ending (Kindly use 24 hour format)"))

    def getMentor(self):
        interest = self.interest_expertise
        time = self.time
        end = self.endtime
        t1 = int(input("Enter time: (kindly in 24 hour format)"))
        topic = input("Enter the topic")
        if (topic in interest):
            if(time <= t1 < end):
                print(self.mentor_name)

    while (1):
        i = int(input("Enter 1 to add data \n 2.To search for mentors \n 3. To Exit"))
        if (i == 3):
            break
        elif (i == 2):
            getMentor(self)
        elif (i == 1):
            addStacks(self)
            setMentorOrLearner(self)

if __name__ == "__main__":
    MyClass().run()

1 Ответ

0 голосов
/ 19 марта 2020

будет называться self.addStacks() в классе. self является объектом этого класса, и при записи self.foo() вы вызываете foo() метод этого класса

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