Class TypeError:未绑定方法
我正在编写一个程序,通过不同的方法将数字从一个基转换为另一个基,我正在使用类和模块 模块#1包含带有属性值和基础的类编号 模块#2包含没有属性的类控制器 模块#3包含具有属性ctrl的类控制台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
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),我会再次得到第一个错误。我应该做哪些更改才能使其正常工作?