今天介绍下__new__的用法:
__new__是新式类中出现,是一种静态方法。在python官方文档中,介绍了在那些情况下可以使用:
Use __new__ when you need to control the creation of a new instance. Use __init__ when you need to control initialization of a new instance.
__new__ is the first step of instance creation. It's called first, and is responsible for returning a new instance of your class. In contrast, __init__ doesn't return anything; it's only responsible for initializing the instance after it's been created.
In general, you shouldn't need to override __new__ unless you're subclassing an immutable type like str, int, unicode or tuple.
链接:https://docs.python.org/3/reference/datamodel.html?highlight=__new__#object.__new__有兴趣的可以查看官方文档。它和__init__被放基本定制章节,主要用于类实例的定制化。
从上面英文的意思,可以知道:
- 需要控制实例的创建的时候,使用__new__;在类创建过程中,最先调用并返回类实例;