Python:多项选择测验中的属性错误

Python: AttributeError in Multiple Choice Quiz

我是 Python 的新手,最近一直在学习构建基本多项选择测验的教程。除了作为 AttributeError 出现的一个部分外,一切似乎都可以正常工作。

代码如下:

class question_Class:
    def __init__(self, prompt, answer):
        self.prompt = prompt
        self.answer = answer


question_prompts = [
    "What colour are apples?\n(a) Red/Green\n(b) Purple\n(c) Orange\n\n",
    "What colour are bananas?\n(a) Teal\n(b) Magenta\n(c) Yellow\n\n"
]

question_class_objects = [
    question_Class(question_prompts[0], "a"),
    question_Class(question_prompts[1], "c"),
]


def run_test(question_class_objects):
    score = 0
    for question in question_class_objects:
        answer = input(question_Class.prompt)
        if answer == question_Class.answer:
            score += 1
    print("You got " + str(score) + "/" + str(len(question_class_objects)) + "correct")



run_test(question_class_objects)

错误来自 question_Class.prompt() 和 question_Class.answer:run_test 函数的部分。(属性错误:类型对象 'question_Class' 没有属性 'prompt').

如有任何帮助,我们将不胜感激。谢谢!

你需要更换

for question in question_class_objects:
    answer = input(question_Class.prompt)
    if answer == question_Class.answer:
        score += 1

来自

for question in question_class_objects:
    answer = input(question.prompt)
    if answer == question.answer:
        score += 1

由于您使用变量 question 迭代列表 question_class_objects,因此您需要使用变量来访问提示和答案。

因为 class 有多个实例(两个问题)你必须给 class 变量一个实例来处理。所以你可以简单地做“question_Class.prompt(问题)”同样的事情也适用于question_Class.answer。