首页 > 其他 > 详细

__new__ 和 __init__ 的区别

时间:2021-08-01 13:03:38      阅读:12      评论:0      收藏:0      [点我收藏+]

区别

控制类初始化和构建过程,两个函数的参数有区别(cls、self)
如果__new__函数返回一个已经存在的实例(不论是哪个类的),__init__不会被调用
_new__方法主要是当你继承一些不可变的class时(比如int, str, tuple), 提供给你一个自定义这些类的实例化过程的途径

__new__

  • 如果没有返回值会怎么样?
  • 单例模式
  • 修改构建过程

__init__

  • 初始化变量

调用顺序:

先调用__new__,再__init__

参考

__new__ 和 __init__ 的区别

原文:https://www.cnblogs.com/zyl007/p/15085967.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!