new方法和init方法的区别
来源:互联网 发布:phpcms 模板使用php 编辑:程序博客网 时间:2024/05/18 20:10
python类中的new方法和init方法的区别
1、定义一个cat类
class Cat(object): def __new__(cls, *args, **kwargs): print("this is new method") print(id(cls)) obj = object.__new__(cls) print(obj) return obj def __init__(self): print('this is init method') print(self)# 打印类的IDprint(id(Cat))# 创建一个persian_cat实例对象persian_cat = Cat()
2、执行结果
4301236920this is new method4301236920<__main__.Cat object at 0x10339e4e0>this is init method<__main__.Cat object at 0x10339e4e0>
3、说明
new方法至少要有一个参数cls,代表要实例化的类,此参数在实例化的时候有python解释器自动提供,而且new方法必须要将实例化的实例对象返回。
init的第一个参数必须是self,这个self就是new方法返回的实例对象,init的作用就是为了初始化实例对象,而init方法不需要有返回值。
阅读全文
0 0
- new方法和init方法的区别
- iOS 初始化方法 alloc init 与 new 的区别
- init()和onEnter()方法的区别
- init()和onEnter()方法的区别
- iOS alloc、init和new方法
- Servlet的init()方法和service()方法的区别是什么
- servlet的init()方法和service()方法的区别
- OC中initialize方法和init方法的区别
- oc中new和init的区别
- iOS new和alloc init的区别
- new和alloc init的区别
- iOS new 和alloc/init 的区别
- ios new和alloc init的区别
- new关键字和newInstance()方法的区别
- new和newInstance的区别方法
- new和newInstance的区别方法
- newInstance()方法和new关键字的区别
- static 和new对象方法的区别
- concurrentHashMap 原理
- 面向接口编程
- CSU-1507 超大型LED显示屏
- 颇具争议的12个数学问题
- Spark架构与作业执行流程简介
- new方法和init方法的区别
- 【Android】自定义ViewPage 禁用左右滑动事件
- 15~16day-Quartz2D(自定义控件、图片水印、裁剪以及屏幕截图)
- HTML5 Canvas元素绘制图形
- javaweb3
- 判断JS数据类型的四种方法
- Android中的PopupWindow基本使用
- Just a Hook HDU
- 来西电一周年纪念