python中__init__和__new__有什么区别

  

python中__init__和__new__有什么区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

python的五大特点是什么

python的五大特点:1。简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2。面向对象,与其他主要的语言如c++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。3。可移植性,Python程序无需修改就可以在各种平台上运行。4。解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5。开源,Python是牙线(自由/开放源码软件)之一。

<强> 1,作用不同

__init__()初始化方法和__new__(),通过类创建对象时,自动触发执行. __new__是用来创建类并返回这个类的实例,而__init__只是将传入的参数来初始化该实例。

<强> 2,概念不同

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

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

<强> 3,实例

 #, __init__ , __new__
  class 学生(对象):
  ,
  ,,,def  __init__(自我,,名字,,年龄):
  ,,,,,,,印刷(& # 39;__init__(),叫# 39;)
  ,,,,,,,self.name =,名字
  ,,,,,,,self.age =,年龄
  ,
  ,,,def  __new__ (cls, * args,, * * kwargs):
  ,,,,,,,印刷(& # 39;__new__(),叫# 39;)
  ,,,,,,,印刷(cls, args, kwargs)
  ,,,,,,,return 超级(). __new__ (cls)
  ,,
  ,
  #,ipython 测验
  [26]:拷贝,s1 =,学生(& # 39;回族# 39;,,年龄=21)
  __new__ (),
  & lt; class  & # 39; __main__.Student& # 39;祝辞,(& # 39;回族# 39;,),{& # 39;年龄# 39;:,21}
  __init__ (),
  ,
  [27]:拷贝,s2 =,学生(& # 39;杰克# 39;,,年龄=20)
  __new__ (),
  & lt; class  & # 39; __main__.Student& # 39;祝辞,(& # 39;杰克# 39;,),{& # 39;年龄# 39;:,20}
  __init__(),叫做

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

python中__init__和__new__有什么区别