AttributeError:类型对象“问题”没有属性“实际问题”[关闭]

Posted

技术标签:

【中文标题】AttributeError:类型对象“问题”没有属性“实际问题”[关闭]【英文标题】:AttributeError: type object 'Question' has no attribute 'actual_question' [closed] 【发布时间】:2022-01-23 09:19:12 【问题描述】:

我只是在学习 python OOP。我创建了一个名为 Question 的类。在 questions.py 中:

class Question:
def __init__(self, actual_question, answer):
    self.actual_question = actual_question
    self.answer = answer

然后我写道:

from questions import Question

mcq = [
    "what is my name?\n a. sakib \n b. sajid \n c. karim\n\n ",
    "when was i born?\n a. 1998 \n b. 2004\n c. 2006\n\n ",
    "where do i live?\n a. rajshahi b. rangpur c. dhaka\n\n "
]

user_input = [
    Question(mcq[0], "a"),
    Question(mcq[1], "b"),
    Question(mcq[2], "c")
]


def test(user_input):
    score = 0
    for i in user_input:
        user = input(Question.actual_question)
        if user == Question.answer:
            score += 1
    print("You have got " + str(score) + " out of " + str(len(mcq)))


test(mcq)

我收到一个错误:AttributeError: type object 'Question' has no attribute 'actual_question'

提前致谢。

【问题讨论】:

它应该是i.actual_question,因为actual_question 是instance attribute。 Question 是你的类,i 是你的实例。 如果您没有在 for 循环中使用迭代变量,您应该始终保持怀疑。 @Selcuk i 是一个字符串。函数内部的user_input 是传入的mcq 而不是全局的user_input 你的意思是test(user_input),而不是test(mcq) @gre_gor 你是对的,他们也将错误的列表传递给函数。 【参考方案1】:

应该是i.actual_question 而不是Question.actual_question

【讨论】:

如果我按照你说的做,我得到一个错误:AttributeError: 'str' object has no attribute 'actual_question' i 是一个字符串。函数内部的user_input 是传入的mcq 而不是全局的user_input

以上是关于AttributeError:类型对象“问题”没有属性“实际问题”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:类型对象“产品”没有属性“_meta”

django - AttributeError:类型对象'file'没有属性'set_user'

AttributeError:类型对象“numpy.ndarray”没有属性“__array_function__”

AttributeError:“UUID”对象在使用与后端无关的 GUID 类型时没有属性“replace”

AttributeError:类型对象 x 没有属性 y 以及与 Python 3.4 的其他一些不一致 [关闭]

AttributeError:类型对象“sklearn.tree._tree.TreeBuilder”没有属性“__reduce_cython__”