首先精选了6个我认为值得深思的Python代码,希望对正在学习Python的你有所帮助。1.类有两个方法,一个是new,一个是init,有什么区别,先执行哪个?类测试(对象):def__init__(self):print("test->__init__")def__new__(cls):print("test->__new__")returnsuper().__new__(cls)a=test()结果如下:test->__new__test->init再看一个例子classtest2(object):def__init__(self):print("test2->__init__")def__new__(cls):print("test2->__new__")returnb=test2()运行结果如下:test2->__new__官方解释如下:init的作用是初始化类实例,第一个参数是self,代表对象本身,可以没有返回值。new返回一个新类的实例。第一个参数是cls,代表类本身,必须有返回值。显然,类必须实例化才能产生对象。很明显,先执行new,再执行init。其实new只要返回类本身的一个实例,就会自动调用init进行初始化。但是有一个例外,如果new返回的是另一个类的实例,则不会调用当前类的init。下面我们分别输出对象a和对象b的类型:print(type(a))
