2016-09-18 35 views
-2

我在Python中遇到了一些麻煩,爲什麼它不工作?簡單的Python類不工作

class Quiz: 
    def __init__(self, answer, question): 
     self.answer = answer 
     self.question = question 

    def yesno(self): 
     if self.answer == self.question: 
     return str("Correct!") 
    else: 
     return str("Wrong!") 

print("Time for a quiz.") 

print("What is ((((6^2 * 10) + sqrt((5000*3) - 600))/4!) * 4) - log(1 * 10^11)?") 
userAnswer = int(input()) 
question1 = Quiz(userAnswer, 69) 
Quiz.yesno() 
+0

question1.yesno() – Mateusz

+0

我無法理解這樣的說法'如果self.answer == self.question:'? –

+0

@KalpeshDusane:它比較'self.answer'和'self.question'的值是否相同。當然,這些變量的命名是完全錯誤的。 – Matthias

回答

0

是的,你需要實例化類。所以,question1.yesno()是調用方法時的正確方法(您正在調用對象實例的方法)。

此外,你有一個小的縮進錯誤,可能會導致進一步的道路上的一些問題。

def yesno(self): 
     if self.answer == self.question: 
     return str("Correct!") 
    else: 
     return str("Wrong!") 

實際上應該是:

def yesno(self): 
      if self.answer == self.question: 
       return str("Correct!") 
      else: 
       return str("Wrong!") 
1

question1.yesno()會工作。

yesno()是一個可以被類的對象調用的方法。如果它是一個靜態方法,Quiz.yesno()就可以工作。