首页 > 解决方案 > 缺少 2 个必需的位置参数 - 类方法 Python

问题描述

抱歉,我为此苦苦挣扎了一段时间。我正在尝试使用函数totalPayments,它使用monthlyPayment 类函数,参数在初始化阶段通过。我收到一个错误,缺少 2 个必需的位置参数

class Loan(object):
   def __init__(self, asset, face, rate , term):
       self._asset = asset
       self._face = face
       self._rate = rate
       self._term = term

   @classmethod
   def monthlyPayment(cls,face,rate,term,period=None):
       return ((rate*face*((1+rate)**term)))/(((1+rate)**term)-1)

   def totalPayments(self):
       return (self.monthlyPayment(self) * self._term) 

l = Loan(None,1000,0.025,10)
print(l.totalPayments()) # gets an error missing 2 required positional arguments

编辑:非常感谢你的hekp,我应该修改我的defmonthlyPayment函数以接受参数

标签: pythonpython-3.xclass-method

解决方案


您正在monthlyPayment从实例 ( self) 调用,并且您没有为facerate和提供参数term

它也不应该是类方法,因为您使用实例的属性:

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)

推荐阅读