题目
FIT9136 Introduction to Python programming - S2 2025
多项选择题
from abc import ABC, abstractmethod class DataProcessor(ABC): def __init__(self, data): self.data = data @abstractmethod def clean(self): pass def process(self): cleaned_data = self.clean() return sum(cleaned_data) class ListProcessor(DataProcessor): def clean(self): cleaned = [] for x in self.data: if isinstance(x, (int, float)): cleaned.append(x) return cleaned class AveragingProcessor(ListProcessor): def process(self): cleaned = self.clean() return sum(cleaned) / len(cleaned) dp = ListProcessor([1, 2, "a", 3]) ap = AveragingProcessor([10, None, 20, 30, "skip"]) print(dp.process()) print(ap.process()) What will happen when the above code is executed? Select all correct statements. Incorrect selections will deduct points from your score.
选项
A.a. The class AveragingProcessor inherits both clean() and process() from ListProcessor
B.b. ListProcessor is instantiable after overriding clean() without overriding process()
C.c. The code will raise a TypeError when calling dp.process()
D.d. The method clean() will raise a ValueError if the input list contains None
E.e. The @abstractmethod decorator prevents instantiating DataProcessor directly

查看解析
标准答案
Please login to view
思路分析
To tackle this question, I’ll walk through what each part of the code does and then evaluate each statement against that behavior.
Option a: The class AveragingProcessor inherits both clean() and process() from ListProcessor. In reality, AveragingProcessor defines its own process method, overriding the one it would otherwise inherit. Therefore it does not inherit th......Login to view full explanation登录即可查看完整答案
我们收录了全球超50000道考试原题与详细解析,现在登录,立即获得答案。
更多留学生实用工具
希望你的学习变得更简单
加入我们,立即解锁 海量真题 与 独家解析,让复习快人一步!