python __new__ 和 __init__
来源:互联网 发布:知乎机构账号 编辑:程序博客网 时间:2024/04/29 05:00
因为用的是python3 所以是新式类
__new__(cls)是用来在初始化类的实例前创建实例的方法. 可以用他来控制类的创建过程
如果:
class A(object): def __new__(cls): print('new') def __init__(self): print('init')A()
new
init不会执行, 因为init是在new返回创建的实例时才调用的, new方法返回的实例会作为init的self参数.
如果要自定义创建过程应该
class A(object): def __new__(cls): #do something return super().__new__(cls) def __init__(self): print('init')A()
init
class Female: def __str__(self): return "I'm Female"class Male: def __new__(cls): return super().__new__(Female) def __str__(self): return "I'm Male"print(Male())
输出:
I'm Female
0 0
- python __new__ 和 __init__
- python __new__和__init__
- Python中__new__() 和 __init__()
- python 中的 __new__ 和 __init__
- [深入Python]__new__和__init__
- [深入Python]__new__和__init__
- python中__new__和__init__
- Python中的__init__和__new__
- python __init__和__new__之间的区别
- python __init__和__new__之间的区别
- python中__new__和__init__的区别
- 浅谈 Python 中的 __init__ 和 __new__
- python __new__()和__init__()哪个更早?
- python之__init__()和__new__()的区分
- python __init__和__new__之间的区别
- Python---类的"__new__"和"__init__"方法
- 详解Python中的__init__和__new__
- 详解Python中的__init__和__new__
- php使用分享(一)
- iOS使用横屏
- Java泛型的精妙之处
- codeData的简单使用swift版
- UIButton 的 imageEdgeInsets 和 titleEdgeInsets
- python __new__ 和 __init__
- 努力做一个知识的积累、学习和创造者
- 九度题目1065
- UIView和CALayer的那些事儿
- 使用ssh公钥实现免密码登录
- shiro
- C++的一些注意事项
- Maven简明教程(1)---下载与安装
- unar万能linux解压工具