为什么Python允许类中没有
__new__
方法,而__init__
是强制的?
例如,如果您想创建“A 类”的实例,只需调用
A()
即可创建一个对象。如果创建实例已经完成了这项工作,那么 __new__
类的意义何在?
编辑: 示例:
class A:
def __init__(self):
print("hello world")
A()
将其输入到 python 中将打印“hello world”,作为类
A
的实例,但该类中没有 __new__
方法。
__new__
,如果未定义,则使用 Object.__new__
。
__init__
和__new__
都处理不同的关注点,__init__
关注对象初始状态,而__new__
关注对象如何创建。
因此
__init___
和__new__
都很重要,而且它们都有不同的用途。