在python 3.3上使用Ipython
class Gear:
def __init__(self,chainring,cog):
self.chainring = chainring
self.cog = cog
def ratio () :
ratio = self.chainring/self.cog
return ratio
mygear = Gear(52,11)
mygear.ratio()
错误
TypeError: ratio() takes 0 positional arguments but 1 was given
答案 0 :(得分:7)
当你说
时mygear.ratio()
python将在内部调用像这样的函数
ratio(mygear)
但是根据该功能的定义,
def ratio () :
它不接受任何输入参数。将其更改为接受当前对象,如此
def ratio(self):
答案 1 :(得分:2)
def ratio(self):
你需要将self放在方法
中答案 2 :(得分:2)
Python中的所有实例方法都需要使用self
参数。
def ratio(self):