Python中__init__和__new__方法在类创建时的作用及区别如何理解?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1679个文字,预计阅读时间需要7分钟。
目录 + 背景 + __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分钟。
目录 + 背景 + __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基类的旧式类并没有这些内置方法。

