python類與對象詳解(1):內(nèi)建方法重寫

這一章我們通過一系列的問題及例子,一步步的來理解python中類與對象的方方面面,在章節(jié)里面也會穿插一些設(shè)計模式,調(diào)試技巧等,歡迎大家閱讀轉(zhuǎn)載,不足之處,還請指出。

如果你有一些經(jīng)驗,那么一定知道有時候我們?yōu)榱撕喕恍┻^程會重寫類的一些方法,我們現(xiàn)在要用python來進行修改實例的字符串表示:
在進行代碼實例之前,先來了解一下python中的一個函數(shù)eval()函數(shù),這個函數(shù)可以進行字符串到實例的轉(zhuǎn)化,repr函數(shù)可以進行實例到字符串的轉(zhuǎn)換,可以這樣理解:eval(repr(x)) == x

class Pair:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def __repr__(self):
        return 'Pair(%r, %r)' % (self.x, self.y)

    def __str__(self):
        return '(%s, %s)'.format(self.x, self.y)

運行結(jié)果

>>> p = Pair(3,4)
>>> p
Pair(3, 4)
>>> print(p)
(3, 4)

說明一下這個小例子的運行原理:當(dāng)我們直接打印實例p時,會默認調(diào)用repr()函數(shù)進行輸出,當(dāng)我們使用print打印的時候,其也是默認調(diào)用str()內(nèi)建函數(shù)進行輸出的。

里面需要注意以下點:

  • repr函數(shù)返回需要用%r來表示應(yīng)該使用repr()輸出。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容