Python的new与init

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,如对知识点理解有误还请指正。欢迎补充不足之处,看到后我会及时补充进文章中。

你可能感兴趣的:(Python的new与init)