返回介绍

元类是 Type 的子类

发布于 2024-01-29 22:24:14 字数 521 浏览 0 评论 0 收藏 0

那么,为什么我们说类是Python 3.0中的一个type类的实例?事实证明,这是允许我们编写元类的钩子。由于类型的概念类似于今天的类,所以我们可以用常规的面向对象技术子类type,并且用类语法来定制它。由于类实际上是type类的实例,从type的定制的子类创建类允许我们实现各种定制的类。更详细地说,这是很自然的解决方案——在Python 3.0中以及在Python 2.6的新式类中:

·type是产生用户定义的类的一个类。

·元类是type类的一个子类。

·类对象是type类的一个实例,或一个子类。

·实例对象产生字一个类。

换句话说,为了控制创建类以及扩展其行为的方式,我们所需要做的只是指定一个用户定义的类创建自一个用户定义的元类,而不是常规的type类。

注意,这个类型实例关系与继承并不完全相同:用户定义的类可能也拥有超类,它们及其实例从那里继承属性(继承超类在class语句的圆括号中列出,并且出现在一个类的__bases__元组中)。类创建自的类型,以及它是谁的实例,这是不同的关系。下一小节将描述Python所遵从的实现这种实例关系的过程。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文