美文网首页
Python:__ new __ & __ init __ 的区

Python:__ new __ & __ init __ 的区

作者: dex0423 | 来源:发表于2020-07-22 23:14 被阅读0次

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 __ 用来完善对象,比如给实例对象添加属性,

相关文章

网友评论

      本文标题:Python:__ new __ & __ init __ 的区

      本文链接:https://www.haomeiwen.com/subject/vxntlktx.html