[英]Unresolved attribute reference '__' for class '__'
I'm going through a beginner course and when I reached here the instructor made a separate file for the class and then imported it.我正在学习初学者课程,当我到达这里时,讲师为 class 制作了一个单独的文件,然后将其导入。 I just added the class at the top because I've seen it work before.
我刚刚在顶部添加了 class 因为我以前见过它工作。 it doesn't work like this though but importing it from another file works.
虽然它不像这样工作,但从另一个文件导入它是有效的。 What am I doing wrong?
我究竟做错了什么?
Full error message when running the program:运行程序时的完整错误消息:
File "C:/Users/user/PycharmProjects/pythonProject1/app.py", line 54, in RunTest
ans = input(Class.question)
AttributeError: type object 'Class' has no attribute 'question'
class Class:
def __init__(self, question, answer):
self.question = question
self.answer = answer
QuestionPrompts = [
"\n\n1. \na)\nb)\nc)\nd)\nYour Answer: ",
"\n\n2. \na)\nb)\nc)\nd)\nYour Answer: ",
"\n\n3. \na)\nb)\nc)\nd)\nYour Answer: ",
"\n\n4. \na)\nb)\nc)\nd)\nYour Answer: ",
"\n\n5. \na)\nb)\nc)\nd)\nYour Answer: ",
"\n\n6. \na)\nb)\nc)\nd)\nYour Answer: ",
"\n\n7. \na)\nb)\nc)\nd)\nYour Answer: ",
"\n\n8. \na)\nb)\nc)\nd)\nYour Answer: ",
"\n\n9. \na)\nb)\nc)\nd)\nYour Answer: ",
"\n\n10. \na)\nb)\nc)\nd)\nYour Answer: "
]
questionArray = [
Class(QuestionPrompts[0], "a"),
Class(QuestionPrompts[1], "c"),
Class(QuestionPrompts[2], "b"),
Class(QuestionPrompts[3], "d"),
Class(QuestionPrompts[4], "c"),
Class(QuestionPrompts[5], "a"),
Class(QuestionPrompts[6], "b"),
Class(QuestionPrompts[7], "c"),
Class(QuestionPrompts[8], "d"),
Class(QuestionPrompts[9], "b")
]
def RunTest(questions):
score = 0
for question in questions:
ans = input(Class.question)
if ans == Class.answer:
score += 1
else:
print("Aww man, you got this question wrong therefore lost :(\n"
"You got " + str(RunTest(questionArray)) + "/10 right tho!")
return score
print("Your Score: " + str(RunTest(questionArray)) + "!") #added this part to check if I absolutely need to call the RunTest from outside
this is because you need to first create an instance of that class,这是因为您需要首先创建该 class 的实例,
Example:例子:
>>> class MyClass:
... def __init__(self,question,answer) -> None:
... self.question = question
... self.answer = answer
you need to first instanciate the class into an object:您需要首先将 class 实例化为 object:
>>> myobject = MyClass(question="how good is potato",answer="delicious")
then you can call the self.question:那么你可以调用self.question:
>>> myobject.question
"how good is potato"
>>> myobject.answer
"delicious"
You're passing a list of Class
objects into the RunTest function.您将
Class
对象列表传递到 RunTest function。
When you iterate over this list, refer to the current object's .question
and .answer
attributes.当您遍历此列表时,请参考当前对象的
.question
和.answer
属性。
def RunTest(questions):
score = 0
for question in questions:
ans = input(question.question)
if ans == question.answer:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.