我有一个模块fi
,其中定义了以下类:
class Asset(metaclass=abc.ABCMeta):
pass
@abc.abstractmethod
def get_price(self, dt : datetime.date, **kwargs):
''' Nothing here yet
'''
class CashFlows(Asset):
def __init__(self, amounts : pandas.Series, probabilities : pandas.Series = None):
amounts = Asset.to_cash_flows()
然后我有另一个类Bond(fi.Asset)
,其中包含以下方法:
def to_cash_flows(self, notional : float = 100.0) -> fi.asset.CashFlows:
series = pandas.Series(list_of_data, indices_of_data)
return fi.CashFlows(series)
当我调用to_cash_flows
时,得到错误TypeError: Can't instantiate abstract class CashFlows with abstract methods get_price
。我看到了this answer,但无法将其与我当前的问题联系起来。
谢谢您
2条答案
按热度按时间9cbw7uwe1#
您的
CashFlows
类需要定义get_price
的实现;它是一个抽象方法,具体子类必须实现它。fykwrbwg2#
需要重写**
CashFlows
类中的get_price()
抽象方法**,如下所示: