美文网首页
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