Python 类内的递归除法

Python 类内的递归除法,python,oop,loops,recursion,Python,Oop,Loops,Recursion,我试图练习OOP和递归,但遇到了一些问题。我认为它的递归方面是正确的,但我构造类的方式是错误的 它应该如何工作: 它应该从6中减去1,直到x=0。每次向索引添加1。当x等于0时,函数应返回索引 哪里出错: 下面的代码说我有一个错误,因为divide接受三个参数,而我只提供了两个。但我认为赛尔夫并不是一个真正的论点。这只是课堂上必须做的事情 如何使下面的代码按预期工作 class Division(object): def __init__(self, x, y): se

我试图练习OOP和递归,但遇到了一些问题。我认为它的递归方面是正确的,但我构造类的方式是错误的

它应该如何工作:
它应该从6中减去1,直到x=0。每次向索引添加1。当x等于0时,函数应返回索引

哪里出错:
下面的代码说我有一个错误,因为divide接受三个参数,而我只提供了两个。但我认为赛尔夫并不是一个真正的论点。这只是课堂上必须做的事情

如何使下面的代码按预期工作

class Division(object):

    def __init__(self, x, y):
        self.index = 0
        self.x = x
        self.y = y

    def divide(self, x, y):
        self.index += 1
        if self.x <= 0:
            return self.index
        return divide(self.x-self.y, self.y)

print(Division.divide(6,1))
类别划分(对象):
定义初始化(self,x,y):
self.index=0
self.x=x
self.y=y
def分割(自、x、y):
自索引+=1

如果self.x我不明白你为什么要在这里有一个对象。。。它是什么模型?这是一个没有对象的解决方案

def divide(a, b, q = 0):
    if a < b:
        return q
    return divide(a-b, b, q+1)
def divide(a,b,q=0):
如果a
divide(1,2)。divide(6,1)
,您需要首先创建一个实例。请注意,您在
divide
中没有使用
x
y
(不是根本原因,只是查看设计的提示)。您必须调用
self.divide
。。。没有全局的
divide
方法…旁注经验法则:当你有一个类有两个方法,其中一个是
\uuuu init\uuuuuu
,你不应该使用类。@JoranBeasley谢谢你。这让我得到了我想要的输出。
class Division(object):

        def __init__(self):
            self.index = 0

        def divide(self, x, y):
            self.index += 1
            if x <= y:
                return self.index
            return self.divide(x-y, y)

print(Division().divide(6,1))
def divide(a, b, q = 0):
    if a < b:
        return q
    return divide(a-b, b, q+1)