繁体   English   中英

class '__' 的未解析属性引用'__'

[英]Unresolved attribute reference '__' for class '__'

我正在学习初学者课程,当我到达这里时,讲师为 class 制作了一个单独的文件,然后将其导入。 我刚刚在顶部添加了 class 因为我以前见过它工作。 虽然它不像这样工作,但从另一个文件导入它是有效的。 我究竟做错了什么?

运行程序时的完整错误消息:

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

这是因为您需要首先创建该 class 的实例,

例子:

>>> class MyClass:
...    def __init__(self,question,answer) -> None:
...        self.question = question
...        self.answer = answer

您需要首先将 class 实例化为 object:

>>> myobject = MyClass(question="how good is potato",answer="delicious")

那么你可以调用self.question:

>>> myobject.question
"how good is potato"
>>> myobject.answer
"delicious"

您将Class对象列表传递到 RunTest function。

当您遍历此列表时,请参考当前对象的.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM