(1)__new__至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别。 (2) __new__返回生成的实例,可以返回父类(通过super(当前类名, cls)的方式)__new__出来的实例, 或者直接是对象的__new__出来的实例。这在自己编程实现__new__时要特别注意。 (3) __init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一 些其它初始化的动作,init__不需要返回值。 (4) 如果__new__创建的是当前类的实例,会自动调用__init,通过返回语句里面调用的__new__函 数的第一个参数是cls来保证是当前类实例,如果是其他类的类名,那么实际创建并返回的就是其他类的实例,也就不会调用当前类或其他类的__init__函数。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。