子类初始化报错:typeerror: init() takes 2 positional arguments but 3 were given
在给定的代码片段中,子类 man() 的初始化函数 init 声明接收一个参数 age,而实例化时却传入了 2 个参数 11 和 22。出现 typeerror: init() takes 2 positional arguments but 3 were given 的提示,是因为实例化时实际上传入了 3 个参数,包括隐含的实例对象 self。
在 python 中,实例方法的第一个参数永远是 self,表示实例自身。因此,子类 man() 的 init 函数实际上接收了 2 个参数,包括 self 和 age。当实例化时,传入的参数数量应与初始化函数的参数数量一致,包括 self。
在给定的示例中,应该这样实例化子类 man:
立即学习“Python免费学习笔记(深入)”;
man = Man(11)
这样,只传入了一个参数 age,与子类初始化函数的参数数量一致。
以上就是Python 子类初始化报错:TypeError: init() takes 2 positional arguments but 3 were given 是怎么回事?的详细内容,更多请关注php中文网其它相关文章!