0 Positional arguements but one given but why
在python 3.3上使用ipython
1 2 3 4 5 6 7 8 9 10 11 | 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() |
误差
1 | TypeError: ratio() takes 0 positional arguments but 1 was given |
当你说
1 | mygear.ratio() |
python将在内部调用这样的函数
1 | ratio(mygear) |
但是根据这个函数的定义,
1 | def ratio () : |
它不接受任何输入参数。将其更改为接受当前对象,如下所示
1 | def ratio(self): |
python中的所有实例方法都需要使用
1 | def ratio(self): |
1 | def ratio(self): |
你需要把自己放在方法里面