栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么超类__init__方法没有自动调用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么超类__init__方法没有自动调用?

Python

__init__
与其他语言的 构造函数 之间的关键区别在于,
__init__
不是 构造函数:它是一个
初始化程序 (实际的 构造函数 (如果有,但是请参阅下文;-)是
__new__
并且再次完全不同。虽然 构建
所有超(,毫无疑问,这样做,你继续向下构建“之前”)显然是说你的一部分 构建 一个子类的实例,这显然是不适合的情况下 初始化
,因为在许多用例中,超类的初始化需要被跳过,更改和控制-发生在子类初始化的“中间”,如果发生的话,等等。


基本上,出于完全相同的原因,初始化程序的超类委派在Python中不是自动的,此类委派对于 任何 其他方法也不是自动的-请注意,那些“其他语言”对
任何 其他方法都不会自动进行超类委派其他方法… 只是 针对构造函数(如果适用,则为析构函数),正如我提到的,这 不是
Python的

__init__
方法。(的行为
__new__
也很特殊,尽管实际上与您的问题没有直接关系,因为它
__new__
是一个奇特的构造函数,实际上并不一定需要构造任何东西-
可以很好地返回现有实例,甚至是非实例) …显然Python为您提供了 很多 更多的控制机制的比“其他语言”你心目中,其中
包括具有在没有自动代表团
__new__
本身- !)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661914.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号