亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python中__repr__和__str__區(qū)別詳解

 更新時(shí)間:2019年11月07日 09:34:22   作者:我愛(ài)學(xué)python  
這篇文章主要介紹了Python中__repr__和__str__區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

看下面的例子就明白了

class Test(object):
  def __init__(self, value='hello, world!'):
    self.data = value

>>> t = Test()
>>> t
<__main__.Test at 0x7fa91c307190>
>>> print t
<__main__.Test object at 0x7fa91c307190>

看到了么?上面打印類(lèi)對(duì)象并不是很友好,顯示的是對(duì)象的內(nèi)存地址

下面我們重構(gòu)下該類(lèi)的__ repr__以及str,看看它們倆有啥區(qū)別

# 重構(gòu)__repr__
class TestRepr(Test):
  def __repr__(self):
    return 'TestRepr(%s)' % self.data

>>> tr = TestRepr()
>>> tr        直接終端顯示,不print就是面向程序員
TestRepr(hello, world!)
>>> print tr     print是面向程序員
TestRepr(hello, world!)

重構(gòu)__ repr__方法后,不管直接輸出對(duì)象還是通過(guò)print打印的信息都按我們r(jià)epr方法中定義的格式進(jìn)行顯示了

# 重構(gòu)__str__
calss TestStr(Test):
  def __str__(self):
    return '[Value: %s]' % self.data

>>> ts = TestStr()
>>> ts
<__main__.TestStr at 0x7fa91c314e50>
>>> print ts
[Value: hello, world!]

你會(huì)發(fā)現(xiàn),直接輸出對(duì)象ts時(shí)并沒(méi)有按我們str方法中定義的格式進(jìn)行輸出,而用print輸出的信息卻改變了

repr和str這兩個(gè)方法都是用于顯示的,str是面向用戶(hù)的,而repr面向程序員。

打印操作會(huì)首先嘗試str和str內(nèi)置函數(shù)(print運(yùn)行的內(nèi)部等價(jià)形式),它通常應(yīng)該返回一個(gè)友好的顯示。

__ repr__用于所有其他的環(huán)境中:用于交互模式下提示回應(yīng)以及repr函數(shù),如果沒(méi)有使用str,會(huì)使用print和str。它通常應(yīng)該返回一個(gè)編碼字符串,可以用來(lái)重新創(chuàng)建對(duì)象,或者給開(kāi)發(fā)者詳細(xì)的顯示。

當(dāng)我們想所有環(huán)境下都統(tǒng)一顯示的話(huà),可以重構(gòu)repr方法;當(dāng)我們想在不同環(huán)境下支持不同的顯示,例如終端用戶(hù)顯示使用str,而程序員在開(kāi)發(fā)期間則使用底層的repr來(lái)顯示,實(shí)際上str只是覆蓋了repr以得到更友好的用戶(hù)顯示。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python Dataframe常見(jiàn)索引方式詳解

    Python Dataframe常見(jiàn)索引方式詳解

    這篇文章主要介紹了Python Dataframe常見(jiàn)索引方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python日志記錄與loguru高級(jí)用法全解析

    Python日志記錄與loguru高級(jí)用法全解析

    Python標(biāo)準(zhǔn)庫(kù)的logging模塊功能強(qiáng)大但配置復(fù)雜,而第三方庫(kù)loguru通過(guò)創(chuàng)新的API設(shè)計(jì)大幅降低了日志管理門(mén)檻,本文將深入對(duì)比兩者差異,并演示loguru在現(xiàn)代應(yīng)用中的高級(jí)實(shí)踐
    2025-06-06
  • Python Json序列化與反序列化的示例

    Python Json序列化與反序列化的示例

    這篇文章主要介紹了Python Json序列化與反序列化的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • python正則表達(dá)式的懶惰匹配和貪婪匹配說(shuō)明

    python正則表達(dá)式的懶惰匹配和貪婪匹配說(shuō)明

    這篇文章主要介紹了python正則表達(dá)式的懶惰匹配和貪婪匹配說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • 解決pytorch DataLoader num_workers出現(xiàn)的問(wèn)題

    解決pytorch DataLoader num_workers出現(xiàn)的問(wèn)題

    今天小編就為大家分享一篇解決pytorch DataLoader num_workers出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • 經(jīng)驗(yàn)豐富程序員才知道的8種高級(jí)Python技巧

    經(jīng)驗(yàn)豐富程序員才知道的8種高級(jí)Python技巧

    這篇文章主要介紹了經(jīng)驗(yàn)豐富程序員才知道的8種高級(jí)Python技巧,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Django+simpleui實(shí)現(xiàn)文件上傳預(yù)覽功能(詳細(xì)過(guò)程)

    Django+simpleui實(shí)現(xiàn)文件上傳預(yù)覽功能(詳細(xì)過(guò)程)

    該文章詳細(xì)介紹了如何在Django框架中實(shí)現(xiàn)文件上傳、預(yù)覽和下載功能,并使用SimpleUI美化Django后臺(tái)界面,通過(guò)創(chuàng)建模型、表單、視圖和配置URL,實(shí)現(xiàn)了文件的存儲(chǔ)和管理,同時(shí),文章還提到了配置媒體文件、創(chuàng)建模板以及在生產(chǎn)環(huán)境中的部署注意事項(xiàng),感興趣的朋友一起看看吧
    2025-02-02
  • 在keras里面實(shí)現(xiàn)計(jì)算f1-score的代碼

    在keras里面實(shí)現(xiàn)計(jì)算f1-score的代碼

    這篇文章主要介紹了在keras里面實(shí)現(xiàn)計(jì)算f1-score的代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 好的Python培訓(xùn)機(jī)構(gòu)應(yīng)該具備哪些條件

    好的Python培訓(xùn)機(jī)構(gòu)應(yīng)該具備哪些條件

    python是現(xiàn)在開(kāi)發(fā)的熱潮,大家應(yīng)該如何學(xué)習(xí)呢?許多人選擇自學(xué),還有人會(huì)選擇去培訓(xùn)結(jié)構(gòu)學(xué)習(xí),那么好的培訓(xùn)機(jī)構(gòu)的標(biāo)準(zhǔn)是什么樣的呢?下面跟隨腳本之家小編一起通過(guò)本文學(xué)習(xí)吧
    2018-05-05
  • 使用Python進(jìn)行有效的數(shù)據(jù)脫敏的常用方法

    使用Python進(jìn)行有效的數(shù)據(jù)脫敏的常用方法

    數(shù)據(jù)脫敏(Data Masking)是在數(shù)據(jù)處理和分析過(guò)程中,對(duì)敏感信息進(jìn)行處理,以保護(hù)個(gè)人隱私和企業(yè)機(jī)密的一種技術(shù)手段,數(shù)據(jù)脫敏的目的是不會(huì)泄露敏感信息,同時(shí)保持?jǐn)?shù)據(jù)的可用性和分析價(jià)值,本文給大家介紹了使用Python進(jìn)行有效的數(shù)據(jù)脫敏的常用方法,需要的朋友可以參考下
    2025-03-03

最新評(píng)論