返回顶部
首页 > 资讯 > 后端开发 > 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://lsjlt.com/news/349987.html(转载时请注明来源链接)

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

猜你喜欢
  • 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类中super()和__init__()的区别
    单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(self): print 'Base create' class chi...
    99+
    2022-06-04
    类中 区别 python
  • 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
  • php与ruby的区别是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php与ruby的区别是什么Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。php和ruby...
    99+
    2021-05-03
    php
  • php与vb的区别是什么
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php与vb的区别是什么PHP即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。Visual Basic(简称VB)是Micr...
    99+
    2017-05-19
    PHP
  • wordpress与PHP的区别是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑wordpress是什么WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPres...
    99+
    2020-08-18
    wordpress PHP
  • web与php的区别是什么
    本教程操作环境:windows10系统、PHP7.1版,DELL G3电脑。web与php的区别是什么一个后端,一个前端,这就是最大区别。详细点的话,可以这么说:功能不一样,php主要用于后端处理数据和操作数据,增删改查。而web前端所包括...
    99+
    2016-02-02
    PHP
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作