最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python構(gòu)造函數(shù)及解構(gòu)函數(shù)介紹

 更新時(shí)間:2015年02月26日 11:17:54   投稿:junjie  
這篇文章主要介紹了Python構(gòu)造函數(shù)及解構(gòu)函數(shù)介紹,本文只是講解構(gòu)造及解構(gòu)函數(shù)的簡(jiǎn)單知識(shí),需要的朋友可以參考下

python 有一個(gè)相應(yīng)的特殊解構(gòu)器(destructor)方法名為_(kāi)_del__()。然而,由于python具有垃圾對(duì)象回收機(jī)制(靠引用計(jì)數(shù)),這個(gè)函數(shù)要直到該實(shí)例對(duì)象所有的引用都被清除掉后才會(huì)被執(zhí)行。python中的解構(gòu)器是在實(shí)例釋放前提供特殊處理功能方法,它們通常沒(méi)有被實(shí)現(xiàn),因?yàn)閷?shí)例很少被顯式釋放。

在下面的例子中,我們分別創(chuàng)建(并覆蓋) __init__()和__del__()構(gòu)造器及解構(gòu)函數(shù),然后,初始化類(lèi)并給同樣的對(duì)象很多別名。id()內(nèi)建函數(shù)可用來(lái)確定引用同一對(duì)象的三個(gè)別名。最后一步是使用del語(yǔ)句清除所有的別名,顯示何時(shí)調(diào)用了多少次解構(gòu)器。

復(fù)制代碼 代碼如下:

#!/usr/bin/env python
#coding=utf-8
 
class P():
    def __del__(self):
        pass
 
class C(P):
    def __init__(self):
        print 'initialized'
    def __del__(self):
        P.__del__(self)
        print 'deleted'
 
 
c1 = C()
c2 = c1
c3 = c1
 
print id(c1), id(c2), id(c3)
 
del c1
del c2
del c3

python沒(méi)有提供任何內(nèi)部機(jī)制來(lái)跟跟蹤一個(gè)類(lèi)有多少個(gè)實(shí)例被創(chuàng)建了,或者記錄這些實(shí)例是什么東西。如果需要這些功能,可以顯式加入一些代碼到類(lèi)定義或者_(dá)_init__()和__del__()中去。最好的方式是使用一個(gè)靜態(tài)成員來(lái)記錄實(shí)例的個(gè)數(shù)??勘4嫠鼈兊囊脕?lái)跟蹤實(shí)例對(duì)象是很危險(xiǎn)的,因?yàn)槟惚仨毢侠砉芾磉@些引用,不然你的引用可能沒(méi)辦法釋放(因?yàn)檫€有其他的引用)!看下面的例子:

復(fù)制代碼 代碼如下:

class InstCt(object):
    count = 0
    def __init__(self):
        InstCt.count += 1
    def __del__(self):
        InstCt.count -= 1
    def howMany(self):
        return InstCt.count
 
a = InstCt()
b = InstCt()
print b.howMany()
print a.howMany()
del b
print a.howMany()
del a
print InstCt.count

所有輸出:

復(fù)制代碼 代碼如下:

initialized
4372150104 4372150104 4372150104
deleted
********************
2
2
1
0

相關(guān)文章

  • Django CBV類(lèi)的用法詳解

    Django CBV類(lèi)的用法詳解

    這篇文章主要介紹了Django CBV類(lèi)的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python編寫(xiě)扎金花小程序的實(shí)例代碼

    python編寫(xiě)扎金花小程序的實(shí)例代碼

    這篇文章主要介紹了python編寫(xiě)扎金花小程序的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Python中l(wèi)ambda表達(dá)式的用法示例小結(jié)

    Python中l(wèi)ambda表達(dá)式的用法示例小結(jié)

    本文主要展示了一些lambda表達(dá)式的使用示例,通過(guò)這些示例,我們可以了解到lambda表達(dá)式的常用語(yǔ)法以及使用的場(chǎng)景,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 使用python進(jìn)行時(shí)間序列預(yù)測(cè)的流程

    使用python進(jìn)行時(shí)間序列預(yù)測(cè)的流程

    使用 Python 進(jìn)行時(shí)間序列預(yù)測(cè)是一個(gè)非常常見(jiàn)的任務(wù),可以應(yīng)用于各種領(lǐng)域,時(shí)間序列預(yù)測(cè)的方法有很多,包括統(tǒng)計(jì)方法、機(jī)器學(xué)習(xí)方法、以及深度學(xué)習(xí)方法,下面是一個(gè)簡(jiǎn)單的時(shí)間序列預(yù)測(cè)流程示例,需要的朋友可以參考下
    2024-09-09
  • 探索Python int()函數(shù)傳入中文或者字符串會(huì)發(fā)生什么

    探索Python int()函數(shù)傳入中文或者字符串會(huì)發(fā)生什么

    這篇文章主要為大家介紹了Python int()函數(shù)傳入中文或者字符串會(huì)發(fā)生什么,詳細(xì)討論int()函數(shù)的常規(guī)使用以及它如何處理異常輸入,特別是涉及字符串和中文字符的情況
    2024-01-01
  • 淺談numpy中l(wèi)inspace的用法 (等差數(shù)列創(chuàng)建函數(shù))

    淺談numpy中l(wèi)inspace的用法 (等差數(shù)列創(chuàng)建函數(shù))

    下面小編就為大家?guī)?lái)一篇淺談numpy中l(wèi)inspace的用法 (等差數(shù)列創(chuàng)建函數(shù))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • python中sys模塊是做什么用的

    python中sys模塊是做什么用的

    在本篇文章里小編給大家分享了一篇關(guān)于python中sys模塊的用法及相關(guān)基礎(chǔ)知識(shí)點(diǎn),有興趣的朋友們可以參考下。
    2020-08-08
  • python正則表達(dá)式(re模塊)的使用詳解

    python正則表達(dá)式(re模塊)的使用詳解

    正則表達(dá)式是用來(lái)匹配字符串非常強(qiáng)大的工具,在其他編程語(yǔ)言中同樣有正則表達(dá)式的概念,Python同樣不例外,下面這篇文章主要給大家介紹了關(guān)于python正則表達(dá)式(re模塊)使用的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 十個(gè)驚艷的Pythonic單行代碼

    十個(gè)驚艷的Pythonic單行代碼

    自從用?Python?編寫(xiě)第一行代碼以來(lái),我就被它的簡(jiǎn)單性、出色的可讀性和流行的單行代碼所吸引。在本文中,將為大家介紹和解釋其中的一些單行代碼,希望對(duì)大家有所幫助
    2022-12-12
  • Matplotlib可視化之添加讓統(tǒng)計(jì)圖變得簡(jiǎn)單易懂的注釋

    Matplotlib可視化之添加讓統(tǒng)計(jì)圖變得簡(jiǎn)單易懂的注釋

    今天給大家?guī)?lái)的文章是關(guān)于Python的,文章圍繞著Python Matplotlib可視化展開(kāi),文中非常詳細(xì)的介紹了如何給統(tǒng)計(jì)圖添加注釋,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

德清县| 扬州市| 淄博市| 吴江市| 旬阳县| 辽阳县| 弥渡县| 怀仁县| 浮山县| 定兴县| 乌鲁木齐市| 密云县| 额尔古纳市| 营口市| 宝坻区| 和田县| 新源县| 华坪县| 灵山县| 临安市| 肇东市| 玉溪市| 南陵县| 城步| 洪雅县| 蛟河市| 禄劝| 什邡市| 南溪县| 汪清县| 永修县| 宕昌县| 兰州市| 南雄市| 庆元县| 即墨市| 三原县| 汽车| 苏尼特右旗| 绵阳市| 宁强县|