Menu
CoddyTech

开放式问题

Coddy 测验生成器:Python 面向对象项目 课程的第 5 课,共 11 课。

challenge icon

挑战

简单

创建一个类 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 在线编译器