python - 缺少 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函数以接受参数
解决方案
您正在monthlyPayment
从实例 ( self
) 调用,并且您没有为face
、rate
和提供参数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)
推荐阅读
- java - 我正在尝试将搜索功能实现到自定义列表视图中。我使用搜索功能的菜单
- typescript - 通过工厂创建键/值对只允许类中的属性和关联的属性类型值
- flutter - 当孩子有 BorderRadius() 时,我如何使用 Dismissible()?
- python - 使用 Dash 和 Plotly 的多个折线图
- vue.js - 如何使用 Vue 添加/删除带有两个按钮的样式
- c++ - 尝试将用户输入传递给字符串(C++)
- angular - Angular http 响应作为错误参数,即使状态为 200
- observable - 你如何遍历 ViewModel 的 Rx 可观察列表并膨胀视图
- python - Discord bot 使用 youtube_dl 给出了这个错误.. AttributeError: 'Bot' object has no attribute 'voice_client_in'
- c++ - 我的程序在如何计算 C++ 系列上有什么问题?被困了几个星期