iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python __init__与 __new__的区别是什么
  • 445
分享到

python __init__与 __new__的区别是什么

2023-07-05 06:07:02 445人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇“python __init__与 __new__的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看

这篇“python __init__与 __new__的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python __init__与 __new__的区别是什么”文章吧。

构造函数 __init__ 与__new__

__new__   作用: 创建对象,并分配内存

__init__ 作用: 初始化对象的值

注意:

与java相比,java只有一个构造器。而python  __new__  方法与 __init__ 方法 组合,才能称为一个对应类似于java中的构造器 

先执行__new__ ,创建对象,并分配内存.

再执行 __init__,初始化对象的值。

任何类都继承于object 类。

我们一般不重写__new__ 方法。 我们不重写,就默认调用父类 的 __new__ 方法。

__new__ 方法 ,一定要return 一个对象。 如果自己重写__new__ 方法,但是没有return出一个对象。连对象都没创建成功,后面是不会进行初始化对象的。

例子1:

class Person(object):    def __init__(self,name,id,sex):        self.name = name        self.id = id        self.sex = sex        print("初始化对象的值")     def __new__(cls, *args, **kwargs):        print("开始创建对象,并分配内存") if __name__ == '__main__':    p = Person("张三",12,"男")

运行结果,只执行了__new__ 方法,并没有执行 __init__方法。

为啥呢? 因为new函数,没有返回一个 对象。

正确的用法

class Person(object):    def __init__(self,name,id,sex):        self.name = name        self.id = id        self.sex = sex        print("初始化对象的值")     def __new__(cls, *args, **kwargs):        print("开始创建对象,并分配内存")        self = super().__new__(cls)        return self if __name__ == '__main__':    p = Person("张三",12,"男")

打印结果:

开始创建对象,并分配内存
初始化对象的值

以上就是关于“python __init__与 __new__的区别是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: python __init__与 __new__的区别是什么

本文链接: https://www.lsjlt.com/news/349987.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python __init__与 __new__的区别是什么
    这篇“python __init__与 __new__的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看...
    99+
    2023-07-05
  • Python的__Init__ 和__New__有什么区别
    这篇文章主要讲解了“Python的__Init__ 和__New__有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的__Init__ 和__New__有什么区别”吧!简...
    99+
    2023-07-06
  • python中__init__ 和__new__有什么区别
    python中__init__ 和__new__有什么区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python的五大特点是什么python的五大特点:1....
    99+
    2023-06-15
  • Python中__new__和__init__的区别与联系
    __new__ 和 __init__ 的区别主要表现在: __new__ 负责对象的创建而 __init__ 负责对象的初始化。 __new__:创建对象时调用,会返回当前对象的一...
    99+
    2024-04-02
  • Python中class内置方法__init__与__new__作用与区别解析
    目录背景__init__方法作用__new__方法作用__init__ && __new__联系使用__new__的场景定义、继承immutable class使用m...
    99+
    2024-04-02
  • python__init__与__new__的区别
    一、构造函数 __init__ 与__new__ __new__   作用: 创建对象,并分配内存 __init__ 作用: 初始化对象的值 注意: 1、与java相比,j...
    99+
    2023-02-24
    python __init__与 __new__ python __init__ python __new__
  • python类中super()和__init__()的区别是什么
    这期内容当中小编将会给大家带来有关python类中super()和__init__()的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言今天来谈谈super()和——init_()它们之间的区...
    99+
    2023-06-02
  • Python中__init__和__new__方法有什么用
    这篇文章给大家分享的是有关Python中__init__和__new__方法有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。__ init __方法init方法负责对象的初始化,系统执行该方法前,其实该对象...
    99+
    2023-06-02
  • Python中==与is的区别是什么
    这篇文章主要介绍“Python中==与is的区别是什么”,在日常操作中,相信很多人在Python中==与is的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中==与is的区别是什么”的疑...
    99+
    2023-06-16
  • python中sep与end的区别是什么
    今天就跟大家聊聊有关python中sep与end的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语...
    99+
    2023-06-14
  • Python中urllib3与urllib的区别是什么
    这期内容当中小编将会给大家带来有关Python中urllib3与urllib的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。urllib库urllib 是一个用来处理网络请求的python标准库...
    99+
    2023-06-20
  • Python中turtle.right与turtle.setheading的区别是什么
    这篇文章将为大家详细讲解有关Python中turtle.right与turtle.setheading的区别是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、概念turtle.right与turtl...
    99+
    2023-06-29
  • python中reversed与reverse的区别是什么
    今天小编给大家分享一下python中reversed与reverse的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-07-05
  • python元组与列表的区别是什么
    Python中的元组(tuple)和列表(list)是两种不同的数据结构,它们之间的主要区别在于以下几点: 不可变性:元组是不可...
    99+
    2024-03-15
    python
  • Python 中__new__方法的作用是什么
    今天就跟大家聊聊有关Python 中__new__方法的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。__new__ 的作用在Python中__new__方法与__init...
    99+
    2023-06-02
  • HBase与Hive的区别是什么
    这篇文章主要介绍“HBase与Hive的区别是什么”,在日常操作中,相信很多人在HBase与Hive的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HBase与Hive的区别是什么”的疑惑有所帮助!...
    99+
    2023-06-03
  • web1.0与web2.0的区别是什么
    这篇文章主要介绍了web1.0与web2.0的区别是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。WEB1.0是以数据为核心的网,那我觉得WEB2.0是以人为出发点的互联...
    99+
    2023-06-10
  • access与mysql的区别是什么
    这篇文章主要介绍了access与mysql的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。access与mysql的区别:(1)Mys...
    99+
    2024-04-02
  • dbms_stat与analyze的区别是什么
    这篇文章主要讲解了“dbms_stat与analyze的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“dbms_stat与analyze的区别是什...
    99+
    2024-04-02
  • UNDO与REDO的区别是什么
    这篇文章主要讲解了“UNDO与REDO的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“UNDO与REDO的区别是什么”吧!UNDO 为了解决一致性...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作