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。
我是 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。