在Python中可以选择性地继承方法吗?



我有一个父类有很多方法。我希望它们中的一些在所有子类中被继承。有些方法我只希望在某些类中使用。我可以选择继承哪些方法吗?我知道我可以在子类中重写它们,但我更喜欢一种积极的方法,即添加你想要的,而不是重写你不想要的。

我正在使用backtrader库。

class BaseStrategy(bt.Strategy):
def notify_cashvalue(self, cash, value):
if value < self.starting_cash * self.terminate_threshold:
self.log(f'Stopping strategy at due drop below {self.terminate_threshold * 100}% of initial cash.')
self.cerebro.runstop()

这是我想要继承的类。如你所见,父类是库基的子类,但是这个类实现了空方法。

在使用该类时总是调用notify_cashvalue等方法。在我的示例中,notify_cashvalue具有一些不会在所有子类中定义的属性,因此会出现一个错误,因为notify_cashvalue总是被调用,就像我想选择性地继承的其他几个函数一样。

我发现这里有可能用Python做部分继承吗?你可以用这种方式选择你想要的方法:

class Class0():
def hello():
return "Hello"
def bye():
pass
def nice():
pass
class Class1():
Hello = Class0.hello

相关内容

  • 没有找到相关文章

最新更新