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

Python類的專用方法實例分析

 更新時間:2015年01月09日 15:19:45   投稿:shichen2014  
這篇文章主要介紹了Python類的專用方法,實例分析了__init__、__del__、__repr__等專用方法的應(yīng)用技巧,需要的朋友可以參考下

本文實例講述了Python類的專用方法。分享給大家供大家參考。具體分析如下:

Python 類可以定義專用方法,專用方法是在特殊情況下或當(dāng)使用特別語法時由 Python 替你調(diào)用的,而不是在代碼中直接調(diào)用(象普通的方法那樣)。

1. __init__

類似于構(gòu)造函數(shù)

復(fù)制代碼 代碼如下:
#!/usr/local/bin/python
class Study:
        def __init__(self,name=None):
                self.name = name
        def say(self):
                print self.name
study = Study("Badboy")
study.say()

2. __del__

類似于析構(gòu)函數(shù)

復(fù)制代碼 代碼如下:
#!/usr/local/bin/python
class Study:
        def __init__(self,name=None):
                self.name = name
        def __del__(self):
                print "Iamaway,baby!"
        def say(self):
                print self.name
study = Study("zhuzhengjun")
study.say()

3. __repr__

使用repr(obj)的時候,會自動調(diào)用__repr__函數(shù),該函數(shù)返回對象字符串表達式,
用于重建對象,如果eval_r(repr(obj))會得到一個對象的拷貝。

復(fù)制代碼 代碼如下:
#!/usr/local/bin/python
class Study:
        def __init__(self,name=None):
                self.name = name
        def __del__(self):
                print "Iamaway,baby!"
        def say(self):
                print self.name
        def __repr__(self):
                return "Study('jacky')"
study = Study("zhuzhengjun")
study.say()
print type(repr(Study("zhuzhengjun"))) # str
print type(eval_r(repr(Study("zhuzhengjun")))) # instance
study = eval_r(repr(Study("zhuzhengjun")))
study.say()

4. __str__

Python能用print語句輸出內(nèi)建數(shù)據(jù)類型。有時,程序員希望定義一個類,要求它的對象也能用print語句輸出。Python類可定義特殊方法__str__,為類的對象提供一個不正式的字符串表示。如果類的客戶程序包含以下語句:

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

那么Python會調(diào)用對象的__str__方法,并輸出那個方法所返回的字符串。
復(fù)制代碼 代碼如下:
#!/usr/local/bin/python
class PhoneNumber:
        def __init__(self,number):
                 self.areaCode=number[1:4]
                 self.exchange=number[6:9]
                 self.line=number[10:14]
        def __str__(self):
                return "(%s) %s-%s"%(self.areaCode,self.exchange,self.line)
def test():
         newNumber=raw_input("Enter phone number in the form. (123) 456-7890: \n")
         phone=PhoneNumber(newNumber)
         print "The phone number is:"
         print phone
if__name__=="__main__":
         test()

方法__init__接收一個形如"(xxx) xxx-xxxx"的字符串。字符串中的每個x都是電話號碼的一個位數(shù)。方法對字符串進行分解,并將電話號碼的不同部分作為屬性存儲。
方法__str__是一個特殊方法,它構(gòu)造并返回PhoneNumber類的一個對象的字符串表示。解析器一旦遇到如下語句:

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

就會執(zhí)行以下語句:
復(fù)制代碼 代碼如下:
print phone.__str__()

程序如果將PhoneNumber對象傳給內(nèi)建函數(shù)str(如str(phone)),或者為PhoneNumber對象使用字符串格式化運算符%(例如"%s"%phone),Python也會調(diào)用__str__方法。
5. __cmp __

比較運算符,0:等于 1:大于 -1:小于

復(fù)制代碼 代碼如下:
class Study:
     def __cmp__(self, other):
         if other > 0 :
             return 1
         elif other < 0:
             return - 1
         else:
             return 0
study = Study()
if study > -10:print 'ok1'
if study < -10:print 'ok2'
if study == 0:print 'ok3'

打印:ok2 ok3

說明:在對類進行比較時,python自動調(diào)用__cmp__方法,如-10 < 0 返回 -1,也就是說study 應(yīng)該小與 -10,估打印ok2

6. __getitem__

__getitem__ 專用方法很簡單。象普通的方法 clear,keys 和 values 一樣,它只是重定向到字典,返回字典的值。

復(fù)制代碼 代碼如下:
class Zoo:
     def __getitem__(self, key):
         if key == 'dog':return 'dog'
         elif key == 'pig':return  'pig'
         elif key == 'wolf':return 'wolf'
         else:return 'unknown'
zoo = Zoo()
print zoo['dog']
print zoo['pig']
print zoo['wolf']

打?。?br /> dog pig wolf

7. __setitem__

__setitem__ 簡單地重定向到真正的字典 self.data ,讓它來進行工作。

復(fù)制代碼 代碼如下:
class Zoo:
     def __setitem__(self, key, value):
         print 'key=%s,value=%s' % (key, value)
zoo = Zoo()
zoo['a'] = 'a'
zoo['b'] = 'b'
zoo['c'] = 'c'

打?。?br /> key=a,value=a
key=b,value=b
key=c,value=c

8. __delitem__

__delitem__ 在調(diào)用 del instance[key] 時調(diào)用,你可能記得它作為從字典中刪除單個元素的方法。當(dāng)你在類實例中使用 del 時,Python 替你調(diào)用 __delitem__ 專用方法。

復(fù)制代碼 代碼如下:
class A:
     def __delitem__(self, key):
         print 'delete item:%s' %key
a = A()
del a['key']

希望本文所述對大家的Python程序設(shè)計有所幫助。

相關(guān)文章

  • 詳解如何使用Python實現(xiàn)刪除重復(fù)文件

    詳解如何使用Python實現(xiàn)刪除重復(fù)文件

    這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)刪除重復(fù)文件功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-10-10
  • Django使用httpresponse返回用戶頭像實例代碼

    Django使用httpresponse返回用戶頭像實例代碼

    這篇文章主要介紹了Django使用httpresponse返回用戶頭像實例代碼
    2018-01-01
  • python中的腳本性能分析

    python中的腳本性能分析

    這篇文章主要介紹了python中的腳本性能分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python使用phonemizer實現(xiàn)獲取英文文本句子單詞音素

    python使用phonemizer實現(xiàn)獲取英文文本句子單詞音素

    這篇文章主要為大家詳細介紹了python如何使用phonemizer實現(xiàn)獲取英文文本句子單詞音素,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解下
    2024-11-11
  • 詳解python中的json和字典dict

    詳解python中的json和字典dict

    python中,json和dict非常類似,都是key-value的形式,而且json、dict也可以非常方便的通過dumps、loads互轉(zhuǎn)。這篇文章主要介紹了python中的json、字典dict,需要的朋友可以參考下
    2018-06-06
  • 使用numpngw和matplotlib生成png動畫的示例代碼

    使用numpngw和matplotlib生成png動畫的示例代碼

    這篇文章主要介紹了使用numpngw和matplotlib生成png動畫的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Pytorch計算網(wǎng)絡(luò)參數(shù)的兩種方法

    Pytorch計算網(wǎng)絡(luò)參數(shù)的兩種方法

    PyTorch是一個流行的深度學(xué)習(xí)框架,它允許研究人員和開發(fā)者快速構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò),計算一個PyTorch網(wǎng)絡(luò)的參數(shù)量通常涉及兩個步驟,本文給大家介紹了在PyTorch中計算網(wǎng)絡(luò)參數(shù)量的一般方法,需要的朋友可以參考下
    2024-05-05
  • Python中NumPy的數(shù)組拆分

    Python中NumPy的數(shù)組拆分

    這篇文章主要介紹了Python中NumPy的數(shù)組拆分,我們使用array_split()分割數(shù)組,將要分割的數(shù)組和分割數(shù)傳遞給它,如果將一個數(shù)組拆分為 3 個數(shù)組,則可以像使用任何數(shù)組元素一樣從結(jié)果中訪問它們,需要的朋友可以參考下
    2023-07-07
  • Python使用pymeter操作JMeter的教程詳解

    Python使用pymeter操作JMeter的教程詳解

    pymeter?是一個?Python?庫,它可以以編程方式創(chuàng)建和運行?JMeter?測試計劃,下面就跟隨小編一起來看看Python如何使用pymeter操作JMeter的吧
    2024-01-01
  • Python如何導(dǎo)出導(dǎo)入所有依賴包詳解

    Python如何導(dǎo)出導(dǎo)入所有依賴包詳解

    在Python中我們在項目中會用到各種庫,自帶的自然不必再說,這篇文章主要給大家介紹了關(guān)于Python如何導(dǎo)出導(dǎo)入所有依賴包的相關(guān)資料,需要的朋友可以參考下
    2021-06-06

最新評論

平果县| 古田县| 汕尾市| 舟山市| 广平县| 岢岚县| 吴桥县| 亳州市| 喀喇| 华蓥市| 澄城县| 囊谦县| 昆山市| 千阳县| 塔城市| 岚皋县| 海林市| 赞皇县| 枣强县| 科尔| 延寿县| 大安市| 邯郸市| 吉木萨尔县| 汽车| 昆山市| 曲周县| 临沧市| 桂阳县| 湘阴县| 东至县| 伊宁市| 出国| 象州县| 堆龙德庆县| 富平县| 禹城市| 无为县| 两当县| 嘉黎县| 太谷县|