欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python不同版本的_new_不同點總結(jié)

 更新時間:2020年12月09日 15:10:08   作者:小妮淺淺  
在本篇內(nèi)容里小編給大家整理了一篇關(guān)于python不同版本的_new_不同點總結(jié)內(nèi)容,有興趣的朋友們可以學習下。

我們都知道python的版本不同,在使用的時候就有所區(qū)別。鑒于我們推薦小伙伴們選擇python3版本,所以這方面的區(qū)別了解的不是很多。就拿_new_來說,在python2和3中的寫法是不一樣的,之前有接觸_new_的小伙伴想必沒有注意到這個問題。接下來講講new的基本用法,然后就python不同版本中_new_的區(qū)別帶來詳解。

new方法接受的參數(shù)雖然也是和init一樣,但init是在類實例創(chuàng)建之后調(diào)用,而 new方法正是創(chuàng)建這個類實例的方法。

class Person(object):
  """Silly Person"""
  def __new__(cls, name, age):
    print '__new__ called.'
    return super(Person, cls).__new__(cls, name, age)
  def __init__(self, name, age):
    print '__init__ called.'
    self.name = name
    self.age = age
  def __str__(self):
    return '<Person: %s(%s)>' % (self.name, self.age)
if __name__ == '__main__':
  piglei = Person('piglei', 24)
print piglei

Python3和 Python2中__new__使用不同

Python3的寫法

class Singleton(object):
  def __new__(cls,*args, **kwargs):
    if not hasattr(cls,'_inst'):
      print(cls)
      cls._inst = super(Singleton, cls).__new__(cls)
    return cls._inst

如果Python3的寫法跟Python2寫法一樣,那么倒數(shù)第二行會報錯

"TypeError: object() takes no parameters"

根據(jù)上面的運行結(jié)果我們可以發(fā)現(xiàn),在python3中強行使用python2的寫法是不可行的。

Python __new__()知識點擴充

__new__() 是一種負責創(chuàng)建類實例的靜態(tài)方法,它無需使用 staticmethod 裝飾器修飾,且該方法會優(yōu)先 __init__() 初始化方法被調(diào)用。

一般情況下,覆寫 __new__() 的實現(xiàn)將會使用合適的參數(shù)調(diào)用其超類的 super().__new__(),并在返回之前修改實例。例如:

class demoClass:
  instances_created = 0
  def __new__(cls,*args,**kwargs):
    print("__new__():",cls,args,kwargs)
    instance = super().__new__(cls)
    instance.number = cls.instances_created
    cls.instances_created += 1
    return instance
  def __init__(self,attribute):
    print("__init__():",self,attribute)
    self.attribute = attribute
test1 = demoClass("abc")
test2 = demoClass("xyz")
print(test1.number,test1.instances_created)
print(test2.number,test2.instances_created)

輸出結(jié)果為

__new__(): <class '__main__.demoClass'> ('abc',) {}
__init__(): <__main__.demoClass object at 0x0000026FC0DF8080> abc
__new__(): <class '__main__.demoClass'> ('xyz',) {}
__init__(): <__main__.demoClass object at 0x0000026FC0DED358> xyz
0 2
1 2

到此這篇關(guān)于python不同版本的_new_不同點總結(jié)的文章就介紹到這了,更多相關(guān)python不同版本中的_new_有何不同內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 使用opencv 把視頻分割成圖片示例

    python 使用opencv 把視頻分割成圖片示例

    今天小編就為大家分享一篇python 使用opencv 把視頻分割成圖片示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 使用TensorFlow-Slim進行圖像分類的實現(xiàn)

    使用TensorFlow-Slim進行圖像分類的實現(xiàn)

    這篇文章主要介紹了使用TensorFlow-Slim進行圖像分類的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Python中實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用方法

    Python中實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用方法

    這篇文章主要介紹了Python中實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用方法,本文講解使用dict和lambda結(jié)合實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用,給出了不帶參數(shù)和帶參數(shù)的實例,需要的朋友可以參考下
    2015-03-03
  • python?beautifulsoup4?模塊詳情

    python?beautifulsoup4?模塊詳情

    本文主要介紹了python?beautifulsoup4模塊詳情,BeautifulSoup4是一款python解析庫,主要用于解析HTML和XML,在爬蟲知識體系中解析?HTML?會比較多一些,下文更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • Python實現(xiàn)求解最大公約數(shù)的五種方法總結(jié)

    Python實現(xiàn)求解最大公約數(shù)的五種方法總結(jié)

    求最大公約數(shù)是習題中比較常見的類型,本文小編將給大家提供五種比較常見的算法,都是用Python語言實現(xiàn)的,感興趣的小伙伴可以了解一下
    2022-07-07
  • Python?reflect單例模式反射各個函數(shù)

    Python?reflect單例模式反射各個函數(shù)

    這篇文章主要介紹了Python?reflect單例模式反射各個函數(shù),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值需要的小伙伴可以參考一下
    2022-06-06
  • Python3基于print打印帶顏色字符串

    Python3基于print打印帶顏色字符串

    這篇文章主要介紹了Python3使基于print打印帶顏色字符串,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 用pip給python安裝matplotlib庫的詳細教程

    用pip給python安裝matplotlib庫的詳細教程

    這篇文章主要介紹了用pip給python安裝matplotlib庫的詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python?Asyncio庫之a(chǎn)syncio.task常用函數(shù)詳解

    Python?Asyncio庫之a(chǎn)syncio.task常用函數(shù)詳解

    Asyncio在經(jīng)過一段時間的發(fā)展以及獲取Curio等第三方庫的經(jīng)驗來提供更多的功能,目前高級功能也基本完善。本文主要介紹了Asyncio庫中asyncio.task常用函數(shù)的使用,需要的可以參考一下
    2023-03-03
  • 一文教會你使用Python批量縮放圖片

    一文教會你使用Python批量縮放圖片

    最近處理一些規(guī)格不一的照片,需要修改成指定尺寸便于打印,下面這篇文章主要給大家介紹了關(guān)于使用Python批量縮放圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02

最新評論