更新时间:2022-12-05 16:47:38
您可以将 BaseBacktestPortfolio
也作为抽象类.
You can make the BaseBacktestPortfolio
also as Abstract class.
from abc import ABC, abstractmethod
class Portfolio(ABC):
@abstractmethod
def update_portfolio(self):
pass
@abstractmethod
def update_from_fill(self):
pass
@abstractmethod
def check_signal(self, signal_event):
pass
class BaseBacktestPortfolio(Portfolio, ABC):
def update_portfolio(self):
print("updated portfolio")
def update_from_fill(self):
print("update from fill")
@abstractmethod
def check_signal(self):
pass
class USBacktestPortfolio(BaseBacktestPortfolio):
def check_signal(self):
print("checked signal")
另请注意,您不需要在抽象方法中raise NotImplementedError
.您只需pass
.它更像 Pythonic :)
Also notice that you don't need raise NotImplementedError
inside abstract method. You can just pass
. Its more Pythonic :)