2016-09-18 21 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()が働いていたはずです。

関連する問題