1 回答
TA贡献1811条经验 获得超6个赞
我认为您错误地使用了Question您制作的课程。你试图做Question = data.prompt[1]这并没有真正意义。Question 是一个类,因此您将使用它来创建对象的实例。此外,您的班级期望值prompt并answer传递给它。按照您现在的设置方式,您可以按照new_question = Question("What color is the sky?", "blue"). 但是,我认为在此代码中创建类没有多大用处,因为您没有附加任何方法......
下面是一个测验类思想的例子,可以帮助你掌握 OOP 编程的概念:
import random
questions = [
"What color is the sky?",
"What year is it?"
]
answers = [
"blue",
"2019"
]
class Question:
def __init__(self):
index = random.randint(0, len(questions) - 1)
self.answer = answers[index]
self.question = questions[index]
def check_valid(self, guess):
if guess == self.answer:
return True
else:
return False
if __name__ == "__main__":
name = str(input("What's your name?\n"))
print('Welcome then {} welcome to the quiz!'.format(name))
while True:
new_question = Question()
check = False
while check is not True:
print(new_question.question)
user_guess = str(input('What do you think the answer is?\n'))
check = new_question.check_valid(user_guess)
您可以看到,在该__init__(self):部分中,代码并未真正进行任何主要计算,而只是设置了以后可以调用的内容,例如new_question.question. 但是,您可以连接方法,像类check_valid(由压痕连接到类def),再后来就用在这些方法的实例创建类的。我的代码中没有很多函数(例如退出循环的能力),但希望这能帮助您更深入地理解 OOP!
添加回答
举报