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

了解__init_subclass__

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

了解__init_subclass__

__init_subclass__
并且
__set_name__
是正交机制-
它们并不相互关联,只是在同一PEP中进行了描述。两者都是以前需要功能齐全的元类的功能。该PEP 487地址 2 元类最常见的用途:

  • 如何让父母知道何时将其子类化(
    __init_subclass__
  • 如何让描述符类知道用于(
    __set_name__
    )的属性的名称

正如PEP所说:

尽管有很多使用元类的方法,但 绝大多数用例可分为三类:在类创建后运行的一些初始化代码,描述符的初始化以及保持类属性定义的顺序。

通过对类的创建进行简单的挂钩,就可以轻松实现前两个类别:

  • 一个
    __init_subclass__
    钩子,用于初始化给定类的所有子类。
  • 创建
    __set_name__
    类时,将对类中定义的所有属性(描述符)调用一个钩子,并且

第三类是另一个PEP 520的主题。

还要注意,虽然

__init_subclass__
可以替换在 此类 的继承树中使用元类,但是
__set_name__
描述符类
中的替换是针对将 描述符 的实例 作为attribute 的类使用元类。



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

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

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