【发布时间】:2022-01-13 16:53:52
【问题描述】:
我有 2 个子类在不同的条件下执行相同的代码。
class Child1(Parent):
...
def updateChart(self):
if self.value % 15 == 0:
self.value += 5
class Child2(Parent):
...
def updateChart(self):
if self.value % 30 == 0:
self.value += 5
有没有办法将方法本身移动到父类,但 if 条件有一个通用的 CONDITION 占位符?并且这个占位符在 init 的子类中被赋予了正确的值?
【问题讨论】:
-
使用
def condition(self): ...方法,然后只使用if self.condition(): self.value += 5 -
或者甚至只是一个用作模数的属性:
if self.value % self.m == 0:。方法更容易作为抽象方法添加到父级,但如果子级忽略提供一个默认模数,则父级可能会提供一个默认模数。
标签: python class inheritance attributes