在使用Ipython的python 3.3上

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

最佳答案

当你说

mygear.ratio()


python将在内部调用此函数

ratio(mygear)


但是根据该功能的定义,

def ratio () :


它不接受任何输入参数。更改它以接受当前对象,像这样

def ratio(self):

关于python - 0个位置参数,但给出一个,但是为什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21309172/

10-12 01:10