Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

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. I just added the class at the top because I’ve seen it work before. 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

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

You’re passing a list of Class objects into the RunTest function.

When you iterate over this list, refer to the current object’s .question and .answer attributes.

def RunTest(questions):
    score = 0
    for question in questions:
        ans = input(question.question)
        if ans == question.answer:
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading