当前位置:首页 > Python教程 > python技巧

Python的魔法方法__new__与__init__介绍

一、概述

__new__负责创建类的实例对象,__init__负责对__new__创建的对象进行初始化,二者都由Python解释器自动调用。

二、示例

创建对象时,Python解释器会先调用__new__方法创建对象并返回,然后再调用__init__对创建好的对象进行初始化:

            class
             Test:
    
            pass
            

test = Test()
    #解释器的工作过程#1.test = object.__new__(Test)#2.object.__init__(test) #因为Test没定义__init__方法,所以采用基类的方法,object是所有类的基类

如果重写了__new__方法,就必须显式的调用基类的__new__方法创建对象返回,__new__是解释器实现的类方法:

            class
             Test:
    
            def
            __new__(cls, *args, **kwargs):
        self = super().__new__(cls, *args, **kwargs) #也可以直接写为object.__new__(cls, *args, **kwargs),object类是所有类的基类
        self.gender = return self

    def__init__(self, name, age=0):
        self.name = name
        self.age = age

test = Test(meng, age=21)
    #解释器的工作过程#1.test = Test.__new__(Test, ‘meng‘, age=21)#2.Test.__init__(test, ‘meng‘, age=21)
test.gender #->男

 

原文:https://www.cnblogs.com/hanxiaomeng/p/12753617.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐