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

登录即可查看完整答案

我们收录了全球超50000道真实原题与详细解析,现在登录,立即获得答案。

更多留学生实用工具

加入我们,立即解锁 海量真题独家解析,让复习快人一步!