这是一个非常简单的问题,但是我似乎无法弄清楚为什么我的“对象”是Nonetype。我正在遵循(至少我认为是)我对此已经读过的数十个堆栈溢出帖子以及此处找到的示例的基本逻辑。
https://www.python-course.eu/python3_abstract_classes.php
这是我的错误,然后是我的代码。
AttributeError: 'NoneType' object has no attribute 'calc_payoff'
class PayoffInterface(ABC):
# the abstract class is defined by its strike price only
# the specific subclass will tell us how to relate the strike and spot
# based on the type of option that we are trading
def __init__(self, strike):
self.strike = strike
super().__init__()
@abstractmethod
def calc_payoff(self,spot):
pass
def PayoffCallEuro(PayoffInterface):
# def __init__(self, strike):
# self.strike = strike
def calc_payoff(self, spot):
return np.max([spot - self.strike,0])
test = PayoffCallEuro(10)
test.calc_payoff(23)
我在这里缺少一些基本概念吗?谢谢你的帮助。另外,如果相关,我正在使用Anaconda 3.6.7。