开放式问题
Coddy 测验生成器:Python 面向对象项目 课程的第 5 课,共 11 课。
挑战
简单创建一个类 OpenQuestion,使其继承自 Question,并实现 Question 类中的构造函数以及 print 和 check 方法。
构造函数:接收一个字符串和一个字符串列表,并分别将它们保存到 question 和 answers 字段中。
print 方法:按 '[?] {question}' 的格式输出问题。
例如,如果问题是 'Are you experienced programmer?',,该方法应输出 '[?] Are you experienced programmer?'
check 方法:如果输入字符串(答案)包含在 answers 字段中,则返回 True,否则返回 False。
例如,对于 answers = ['yes', 'maybe'],如果 check('yes') 返回 True,那么 check('nope') 返回 False
亲手试试
from abc import ABC, abstractmethod
class Question(ABC):
@abstractmethod
def print(self):
pass
@abstractmethod
def check(self, answer):
pass
class YesNoQuestion(Question):
def __init__(self, question, answer):
self.question = question
self.answer = answer
def print(self):
print('[?] ' + self.question + ' (yes/no)')
def check(self, answer):
return (answer == 'yes' and self.answer) or \
(answer == 'no' and not self.answer)
测验生成器:Python 面向对象项目中的所有课
自己练习: Python 在线编译器