簡體   English   中英

錯誤:NameError: name 'self' 未定義(即使在 main 方法中定義之后)

[英]Error: NameError: name 'self' is not defined (even after defining it in main method)

我是面向對象的 python 新手,我遇到了一個錯誤,說 NameError: name 'self' is not defined。 我搜索了很多文章,但無法解決。

如果我的代碼看起來很愚蠢,請原諒我,這是我使用 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()

它將在類中稱為self.addStacks() self 是 it 類的對象,並通過 write self.foo()調用 it 類的foo()方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM