2016-09-18 32 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()就可以工作。