Python的new与init
区别
- new方法是在init方法前被调用的。new负责创建,init负责创建后的赋值。
- new是静态方法,参数中有cls。init是实例方法,参数中含有self。
- new方法必须要返回一个实例,一般是调用父类的new方法。如果没有返回值,实例的init方法不会被执行。init方法没有返回值,或者返回值必须是空,否则引发异常。
class A():
def __new__(cls, *args, **kwargs):
print("new")
return super().__new__(cls)
def __init__(self):
print("init")
输出:
new
init
初学python,如对知识点理解有误还请指正。欢迎补充不足之处,看到后我会及时补充进文章中。