1

私はゲームを作っていますが、コードには 2 つのクラスがあります。1 つは質問を定義し、もう 1 つは 4 つの多肢選択式の回答を定義します。これは私が持っているものです:

class new_question(type):
""" The Question that displays on screen """

    def __init__(self, question):
        super(new_question, self).__init__(question = question)

    def ask_quest(self):
        global QUESTION
        QUESTION = ask_question
        QUESTION.value = question

これが私の最初のクラスで、2 番目のクラスは次のとおりです。

class answer(type):
""" Four answers that display in their own boxes """

    def __init__(self, answers):
        super(answer, self).__init__(answers = answers)

    def all_answers(self):
        global ANS1
        global ANS2
        global ANS3
        global ANS4
        ANS1 = poss_ans_1
        ANS1.value = answers[0]
        ANS2 = poss_ans_2
        ANS2.value = answers[1]
        ANS3 = poss_ans_3
        ANS3.value = answers[2]
        ANS4 = poss_ans_4
        ANS4.value = answers[3]

すべての変数は、このファイルの他の場所で定義されていますが、それは私が抱えている問題ではありません。これらのクラスを呼び出すときは、ここでメイン ループ内のクラスから個々の関数を呼び出すのが最善の方法だと思います。

def main():
    load_image()
    ans = answer(type)
    ans.all_answers()

main()

ただし、プログラムを実行すると、次のエラーが発生します。

Traceback (most recent call last):
File "C:\Users\Roger\Documents\Trivia New\main.py", line 83, in <module>
main()
File "C:\Users\Roger\Documents\Trivia New\main.py", line 82, in main
ans.all_answers()
AttributeError: type object 'type' has no attribute 'all_answers'

何が起こっているのかわかりませんが、同じ問題に 3 時間悩まされていますが、まだ理解できません。誰かが私を助けることができれば、私はそれを感謝します.

4

1 に答える 1

3

objectクラスはではなくをサブクラス化する必要がありtypeます。

サブクラス化typeにより、クラスはメタクラス (クラスのクラス) になります。

于 2013-07-11T08:16:39.857 に答える