欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何理解python的函數(shù)重寫-創(chuàng)新互聯(lián)

這篇文章運(yùn)用簡單易懂的例子給大家介紹如何理解python的函數(shù)重寫,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

柘榮ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

 在自定義類內(nèi)添加相應(yīng)的方法,讓自定義類創(chuàng)建的實(shí)例能像內(nèi)建對(duì)象一樣進(jìn)行內(nèi)建函數(shù)操作,這就是函數(shù)重寫。

對(duì)象轉(zhuǎn)字符串函數(shù):repr(obj) ,返回一個(gè)能代表此對(duì)象的表達(dá)式字符串,通常eval(repr(obj)) == obj  (這個(gè)字符串通常是給python解釋執(zhí)行器運(yùn)行用的),str(obj)  通過給定的對(duì)象返回一個(gè)字符串(這個(gè)字符串通常是給人閱讀的)。

對(duì)象轉(zhuǎn)字符串函數(shù)的重寫方法:

repr(obj) 函數(shù)的重寫方法:

def __repr__(self):

str(obj) 函數(shù)的重寫方法:

def __str__(self):

說明:

1. str(obj) 函數(shù)先查找, obj.__str__()方法,調(diào)用此方法并返回結(jié)果

2. 如果沒有obj.__str__()方法時(shí),則返回obj.__repr__()方法的結(jié)果并返回

3. 如果obj.__repr__方法不存在,則調(diào)用object類的__repr__實(shí)例方法顯示<__main__.XXXX object at 0xAABBCCDD>格式的字符串

示例:

# 此示例示意通過重寫 repr 和 str方法改變轉(zhuǎn)為字符串的規(guī)則
class MyNumber:
    def __init__(self, value):
        '構(gòu)造函數(shù),初始化MyNumber對(duì)象'
        self.data = value
 
    def __str__(self):
        '''轉(zhuǎn)換為普通人識(shí)別的字符串'''
        # print("__str__方法被調(diào)用!")
        return "自定義數(shù)字類型對(duì)象: %d" % self.data
 
    def __repr__(self):
        '''轉(zhuǎn)換為eval能夠識(shí)別的字符串'''
        return 'MyNumber(%d)' % self.data
 
 
n1 = MyNumber(100)
n2 = MyNumber(200)
print('repr(n1) ====>', repr(n1))
print('str(n2)  ====>', str(n2))

其它內(nèi)建函數(shù)的重寫方法:

__abs__       abs(obj)  函數(shù)

__len__       len(obj)  函數(shù)(必須返回整數(shù))

__reversed__  reversed(obj) 函數(shù)(必須返回可迭代對(duì)象

__round__     round(obj)  函數(shù)

示例:

# 此示例示意abs 函數(shù)的重寫
class MyInteger:
 
    def __init__(self, v):
        self.data = v
 
    def __repr__(self):
        return 'MyInteger(%d)' % self.data
 
    def __abs__(self):
        v = abs(self.data)
        return MyInteger(v)  # 用v創(chuàng)建另一個(gè)MyInteger對(duì)象
 
    def __len__(self):
        return 10000
 
I1 = MyInteger(-10)
print('I1 =', I1)
 
I2 = abs(I1)
print("I2 =", I2)
 
print('len(I2)=', len(I2))  # 10000

數(shù)值轉(zhuǎn)換函數(shù)的重寫:

__complex__  complex(obj) 函數(shù)

__int__      int(obj) 函數(shù)

__float__    float(obj) 函數(shù)

__bool__     bool(obj) 函數(shù)     (見下面布爾測(cè)試函數(shù)重載)

示例:

# 此示例示意數(shù)據(jù)轉(zhuǎn)換構(gòu)造函數(shù)的重寫方法
class MyNumber:
 
    def __init__(self, value):
        self.data = value
 
    def __repr__(self):
        return 'MyNumber(%d)' % self.data
 
    def __int__(self):
        'int函數(shù)的重載'
        return self.data
 
n1 = MyNumber(100)
x = int(n1)
print(n1)
 
print(bool(n1))  # True
n2 = MyNumber(0)
print(bool(n2))  # True

布爾測(cè)試函數(shù)重寫:

格式:

__bool__

作用:

用于bool(obj) 函數(shù)取值

用于if語句的真值表達(dá)式中

用于while 語句的真值表達(dá)式中

說明:

1. 當(dāng)自定義的類內(nèi)有 __bool__(self) 方法時(shí),以此方法的返回值作為bool(obj) 的返回值

2. 當(dāng)不存在__bool__(self) 方法時(shí),bool(x) 返回__len__(self) 方法的返回值是否為零來測(cè)試布爾值

3. 當(dāng)不存在__len__(self) 方法時(shí),則直接返回True

示例:

# 此示例示意bool(x) 函數(shù)的重寫
class MyList:
    '自定義類型的列表,用來保存數(shù)據(jù),內(nèi)部用一個(gè)列表來存儲(chǔ)數(shù)據(jù)'
 
    def __init__(self, iterable=()):
        self.data = [x for x in iterable]
 
    def __repr__(self):
        return 'MyList(%s)' % self.data
 
    def __len__(self):
        '''返回長度'''
        print("__len__方法被調(diào)用")
        return len(self.data)
 
    def __bool__(self):
        print("__bool__方法調(diào)用")
        for x in self.data:
            if not x:
                return False
        return True
        # return False  # <<=== 所有對(duì)象都為False
 
myl = MyList([0, -1, 2, -3])
# myl = MyList()
print(myl)
print(bool(myl))
if myl:
    print("myl為真值")
else:
    print('myl為假值')

關(guān)于如何理解python的函數(shù)重寫就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享題目:如何理解python的函數(shù)重寫-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://aaarwkj.com/article30/ccpjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)網(wǎng)站排名、電子商務(wù)、小程序開發(fā)、建站公司靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
亚洲中文字幕在线不卡| 伊在人亚洲香蕉精品区| 一区二区在线视频中文字幕 | 国产成人精品一二三四区| 国产一区二区三区的网站| 亚洲麻豆精品午夜免费| av 一区二区三区av| 成人黄色大片免费看| 亚洲欧美日韩高清一区二区| 中文字幕一区中出爽亚洲| 国产男女乱淫一区二区三区| 亚洲精品紧身裙女教师av| 日本少妇一区二区99| 欧美日韩69av网| 欧美精品在,欧美一区二区| 成人激情视频在线观看| 日韩精品一区二区在线天天狠天| 日本人妻在线一区二区三区| 国产免费成人在线视频| 日韩精品中文字幕电影| 美女丝袜诱惑国产在线观看| 97视频精品全部免费观看| 亚洲成av人在线观看福利| 成人午夜福利影院在线| 亚洲六月丁香六月婷婷| 成人一区二区三区播放| 亚洲国产第一av导航| 精品丝袜熟女一区二区三区| 亚洲福利一区二区在线| 成人黄片在线免费播放| 色婷婷精品一区二区三区| 国产网爆热门精品一区二区| 丰满少妇亚洲中文字幕| 日韩人妻中文字幕亚洲| 欧美日韩一区二区三区激情| 亚洲欧洲精品真人av蜜臀| 91精品蜜臀国产综合久久久久久| 亚洲精品中文字幕久久| 亚洲精品一区二区播放| 亚洲熟女少妇视频自拍| 国产v精品欧美精品v日韩|