对不起,我为此苦了很长时间。我正在尝试使用totalToPayments函数,该函数在初始化阶段使用带有参数传递的monthlyPayment类函数。我遇到一个错误,缺少2个必需的位置参数
minimize
答案 0 :(得分:2)
您正在从实例(monthlyPayment
)调用self
,而没有为face
,rate
和term
提供参数。 / p>
它也不应该是类方法,因为您使用了实例的属性:
class Loan(object):
def __init__(self, asset, face, rate , term):
self._asset = asset
self._face = face
self._rate = rate
self._term = term
def monthlyPayment(self, period=None):
return ((self._rate*self._face*((1+self._rate)**self._term)))/(((1+self._rate)**self._term)-1)
def totalPayments(self):
return (self.monthlyPayment() * self._term)
答案 1 :(得分:1)
您得到的堆栈错误是:
Traceback (most recent call last):
File "C:/Users/cd00119621/PycharmProjects/ideas/stackoverflow.py", line 16, in <module>
print(l.totalPayments())
File "C:/Users/cd00119621/PycharmProjects/ideas/stackoverflow.py", line 13, in totalPayments
return (self.monthlyPayment(self) * self._term)
TypeError: monthlyPayment() missing 2 required positional arguments: 'rate' and 'term'
这里的线索是它的monthlyPayment()
方法提供了缺少2个参数的错误。此方法期望将3个args(不包括self)传递给它,第4个是可选的。
def monthlyPayment(cls,face,rate,term,period=None):
,但是当您从totalPayments
方法中调用此方法时,只能传递一个参数self。
return (self.monthlyPayment(self) * self._term)
您不需要传递自我,它将自动传递,因此您需要传递其他3个预期参数face,rate,term