Class TypeError:未绑定方法

Class TypeError:未绑定方法,class,python-2.7,typeerror,Class,Python 2.7,Typeerror,我正在编写一个程序,通过不同的方法将数字从一个基转换为另一个基,我正在使用类和模块 模块#1包含带有属性值和基础的类编号 模块#2包含没有属性的类控制器 模块#3包含具有属性ctrl的类控制台 class Console: def __init__(self, ctrl): self.__ctrl = ctrl def __successiveDivisions(self): n1 = self.__readNo("Enter the n

我正在编写一个程序,通过不同的方法将数字从一个基转换为另一个基,我正在使用类和模块

模块#1包含带有属性值和基础的类编号 模块#2包含没有属性的类控制器 模块#3包含具有属性ctrl的类控制台

class Console:
     def __init__(self, ctrl):
         self.__ctrl = ctrl

     def __successiveDivisions(self):
         n1 = self.__readNo("Enter the number: ")
         b1 = self.__readBase("Enter the base of the number: ")
         b2 = self.__readBase("Enter the base in which to convert the number: ")
         n2 = self.__ctrl.successiveDivisions(n1, b1, b2) 
*self.\u ctrl.successiveDivisions(n1、b1、b2)*返回类型为number的对象

为什么会出现这个错误

   TypeError: unbound method successiveDivisions() must be called with Controller instance as first argument (got str instance instead)
我试着写:

  n2 = Console()
  n2 = self.__ctrl.successiveDivisions(n1, b1, b2) 
但我有一个错误:

 TypeError: __init__() takes exactly 2 arguments (1 given)
我做错了什么?

 n2 = Console()
您需要传递在类定义中声明的参数。这就是为什么你得到了

TypeError: __init__() takes exactly 2 arguments (1 given)
应该是

n2 = Console(ctrl)

其中
ctrl
应支持
后续分区(n1、b1、b2)
。意味着它应该支持带有三个参数的
successiveDivisions
。这不应该是无限的递归。

这就是问题所在。。。成功是递归的。如果我写n=Console(ctrl),我会再次得到第一个错误。我应该做哪些更改才能使其正常工作?