我正在我的电子商务网站中实现一些用于调整价格的类:每个类代表一个不同的定价调整策略,并且属于一个 AbstractBaseClass,它规定了两种方法:
transform_price
和transform_array
.
class PricingModel(abc.ABC):
@abc.abstractmethod
def transform_price(self, price):
...
def transform_price_array(self, price_array):
return [self.transform_price(price) for price in price_array]
由于transform_array
只是该transform_price
方法的列表理解(当然,这是特定于实现的),我希望有某种方法可以完全抽象该方法,使其仍然执行特定于实现的方法transform_price
。
例如,我希望能够定义一个 PricingModel:
class PriceRatio(PricingModel):
def __init__(self, **kwargs):
...
def transform_price(self, price):
...
return new_price
# Note the abscence of a transform_price_array method!
虽然仍然能够访问抽象类中定义的 transform_price_array 方法:
_ = PriceRatio.transform_price_array([1,2,3,..])