Python中__init__和__new__方法在类创建时的作用及区别如何理解?

2026-04-30 16:150阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1679个文字,预计阅读时间需要7分钟。

Python中__init__和__new__方法在类创建时的作用及区别如何理解?

目录 + 背景 + __init__ 方法作用 + __new__ 方法作用 + __init__ 与 __new__ 的联系 + 使用 __new__ 的场景 + 定义、继承 immutable class + 使用 metaclass + 参考文献及背景 + 最近尝试了解 Django 中 ORM 实现原理,发现了 metacl 的作用

目录
  • 背景
  • __init__方法作用
  • __new__方法作用
  • __init__ && __new__联系
  • 使用__new__的场景
    • 定义、继承immutable class
    • 使用metaclass
  • 参考文献

    背景

    最近尝试了解Django中ORM实现的原理,发现其用到了metaclass(元类)这一技术,进一步又涉及到Python class中有两个特殊内置方法__init__与__new__,决定先尝试探究一番两者的具体作用与区别。
    PS: 本文中涉及的类均为Python3中默认的新式类,对应Python2中则为显式继承了object的class,因为未继承object基类的旧式类并没有这些内置方法。

    阅读全文

    本文共计1679个文字,预计阅读时间需要7分钟。

    Python中__init__和__new__方法在类创建时的作用及区别如何理解?

    目录 + 背景 + __init__ 方法作用 + __new__ 方法作用 + __init__ 与 __new__ 的联系 + 使用 __new__ 的场景 + 定义、继承 immutable class + 使用 metaclass + 参考文献及背景 + 最近尝试了解 Django 中 ORM 实现原理,发现了 metacl 的作用

    目录
    • 背景
    • __init__方法作用
    • __new__方法作用
    • __init__ && __new__联系
    • 使用__new__的场景
      • 定义、继承immutable class
      • 使用metaclass
    • 参考文献

      背景

      最近尝试了解Django中ORM实现的原理,发现其用到了metaclass(元类)这一技术,进一步又涉及到Python class中有两个特殊内置方法__init__与__new__,决定先尝试探究一番两者的具体作用与区别。
      PS: 本文中涉及的类均为Python3中默认的新式类,对应Python2中则为显式继承了object的class,因为未继承object基类的旧式类并没有这些内置方法。

      阅读全文