1. 引言
- new 和 init 的代码示例如下:
class User():
def __new__(cls, *args, **kwargs): # 第一个参数是 cls
pass
def __init__(self, *args, **kwargs): # 第一个参数是 self 实例
pass
- name new 和 init 有什么区别呢,各自的作用又是什么,
2. __ new __
- __ new __(cls, *args, **kwargs)
- 第一个参数 cls,用于 实例化之前 给类添加逻辑;
- *args, **kwargs 作用于 cls 类;
- __ new __ 用来控制实例对象的生成过程,发生在 实例化 之前;
3. __ init __
- __ init __(self, *args, **kwargs)
- 第一个参数 self,用于 实例化时 给类添加逻辑;
- *args, **kwargs 作用于 self 实例;
- __ init __ 用来完善对象,比如给实例对象添加属性,
网友评论