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

ID:20217 / 打印

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

子类初始化报错: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,与子类初始化函数的参数数量一致。

上一篇: Pandas 如何实现 COUNTIF 函数统计每行大于指标值的列数?
下一篇: Python format() 函数的参数编号:数字还是变量表达式?

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。