• 技术文章 >Python技术 >Python基础教程

    python中__init__ 和__new__的对比

    小妮浅浅小妮浅浅2021-06-24 09:55:05原创3000

    作用不同

    1、__new__ 是用来创建类并返回这个类的实例,而 __init__ 只是将传入的参数来初始化该实例。

    __init__() 初始化方法 和 __new__(),通过类创建对象时,自动触发执行。

    概念不同

    2、__new__() 创建对象时调用,会返回当前对象的一个实例

    __init__() 创建完对象后调用,对当前对象的一些实例初始化,无返回值

    实例

    # __init__ 、 __new__
    class Student(object):
     
        def __init__(self, name, age):
            print('__init__() called')
            self.name = name
            self.age = age
     
        def __new__(cls, *args, **kwargs):
            print('__new__() called')
            print(cls, args, kwargs)
            return super().__new__(cls)
      
     
    # ipython 测验
    In [26]: s1 = Student('hui', age=21)
    __new__() called
    <class '__main__.Student'> ('hui',) {'age': 21}
    __init__() called
     
    In [27]: s2 = Student('jack', age=20)
    __new__() called
    <class '__main__.Student'> ('jack',) {'age': 20}
    __init__() called

    以上就是python中__init__ 和__new__的对比,希望对大家有所帮助。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python __init__ __new__
    上一篇:Python如何实现时间累加的计算器 下一篇:python中__call__的触发执行

    相关文章推荐

    • python装饰器有哪些作用• python动态存取属性如何实现• python dict.item()方法遍历字典• python字符串中有哪些方法• python格式字符串是什么• python字符串方法format()如何使用• python列表的创建和存放• python列表添加和删除的方法• python默认索引是什么• python列表操作符有哪些• python列表中sort()参数的使用• python如何创建GUI程序• python迭代器的应用场景• python温度转换代码• python输入成绩求平均分• python怎么将整数反转输出• python如何读取不同格式文件• python文件拆分与合并的方法• python数据预处理的三种情况• python自动化测试需要学习什么?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网