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

Python類(lèi)的專(zhuān)用方法實(shí)例分析

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

本文實(shí)例講述了Python類(lèi)的專(zhuān)用方法。分享給大家供大家參考。具體分析如下:

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

1. __init__

類(lèi)似于構(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__

類(lèi)似于析構(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)的時(shí)候,會(huì)自動(dòng)調(diào)用__repr__函數(shù),該函數(shù)返回對(duì)象字符串表達(dá)式,
用于重建對(duì)象,如果eval_r(repr(obj))會(huì)得到一個(gè)對(duì)象的拷貝。

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

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

那么Python會(huì)調(diào)用對(duì)象的__str__方法,并輸出那個(gè)方法所返回的字符串。
復(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__接收一個(gè)形如"(xxx) xxx-xxxx"的字符串。字符串中的每個(gè)x都是電話(huà)號(hào)碼的一個(gè)位數(shù)。方法對(duì)字符串進(jìn)行分解,并將電話(huà)號(hào)碼的不同部分作為屬性存儲(chǔ)。
方法__str__是一個(gè)特殊方法,它構(gòu)造并返回PhoneNumber類(lèi)的一個(gè)對(duì)象的字符串表示。解析器一旦遇到如下語(yǔ)句:

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

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

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

比較運(yùn)算符,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'

打?。簅k2 ok3

說(shuō)明:在對(duì)類(lèi)進(jìn)行比較時(shí),python自動(dòng)調(diào)用__cmp__方法,如-10 < 0 返回 -1,也就是說(shuō)study 應(yīng)該小與 -10,估打印ok2

6. __getitem__

__getitem__ 專(zhuān)用方法很簡(jiǎn)單。象普通的方法 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']

打印:
dog pig wolf

7. __setitem__

__setitem__ 簡(jiǎn)單地重定向到真正的字典 self.data ,讓它來(lái)進(jìn)行工作。

復(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] 時(shí)調(diào)用,你可能記得它作為從字典中刪除單個(gè)元素的方法。當(dāng)你在類(lèi)實(shí)例中使用 del 時(shí),Python 替你調(diào)用 __delitem__ 專(zhuān)用方法。

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

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

相關(guān)文章

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

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

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

    Django使用httpresponse返回用戶(hù)頭像實(shí)例代碼

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

    python中的腳本性能分析

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

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

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

    詳解python中的json和字典dict

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

    使用numpngw和matplotlib生成png動(dòng)畫(huà)的示例代碼

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

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

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

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

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

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

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

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

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

最新評(píng)論

星座| 天台县| 金沙县| 修文县| 蛟河市| 苍梧县| 县级市| 思南县| 靖远县| 玉树县| 苏尼特右旗| 辽宁省| 东台市| 乌鲁木齐市| 乡宁县| 安国市| 重庆市| 桂东县| 赤水市| 平和县| 嘉峪关市| 三亚市| 丰镇市| 和林格尔县| 阳江市| 古蔺县| 桂阳县| 开化县| 浦东新区| 宿松县| 吐鲁番市| 景泰县| 剑川县| 凤凰县| 云浮市| 宜黄县| 武宣县| 荆门市| 长治市| 甘南县| 洛川县|