php中文网

Python 子类初始化报错:TypeError: init() takes 2 positional arguments but 3 were given 是怎么回事?

php中文网

子类初始化报错: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中文网其它相关文章!