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__”