如何解决使用实现级方法的抽象方法
我正在实施一些类来调整我的电子商务网站中的价格:每个类代表不同的定价调整策略,并且属于一个 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,..])
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。