欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中__str__()的妙用

 更新時間:2023年01月25日 10:54:37   作者:是小菜欸  
本文主要介紹了Python中__str__()的妙用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

這里是Python小技巧的系列文章。這是第三篇,object.__str__(self)方法的妙用。

書接上回,這次還是介紹Python類的內(nèi)置方法,__str__()

據(jù)官方文檔的介紹,在使用 str(object) 、format() 和 print() 的時候會調(diào)用__str__() 方法,該方法會將實(shí)例轉(zhuǎn)換為字符串,返回值為 字符串 對象。
如果__str__()沒有被定義,就會調(diào)用 object.__repr__()。

實(shí)現(xiàn) str 方法來定制一個類的實(shí)例的字符串表示。

知識點(diǎn)????

object.__str__(self)https://docs.python.org/zh-cn/3.8/reference/datamodel.html?object.repr
object.__repr__(self)https://docs.python.org/zh-cn/3/reference/datamodel.html?object.repr

關(guān)于__repr__(),基本用不上。建議查看官方文檔,粗略了解即可。

先來看一組簡單的代碼(這個類沒有實(shí)現(xiàn)任何功能

"""demo.py"""


class Nothing:
    ...


if __name__ == "__main__":
    print(Nothing())	# <__main__.Nothing object at 0x000002C2CFD06650> 0x2c2cfd06650

默認(rèn)的打印結(jié)果是當(dāng)前類的實(shí)例的名稱和內(nèi)存地址,如下圖所示(不夸張地說,這個類實(shí)例的打印可以說是毫無用處?。?!

剖析

在代碼復(fù)雜的情況下,再打印默認(rèn)的類實(shí)例,那就顯得太雞肋了。
這個時候我們就需要重寫 __str__()方法了,使得它更加人性化。

再來看一組復(fù)雜點(diǎn)的代碼

"""demo.py"""


class Nothing:
    name = 'frica'
    age = 20

    def __str__(self):
        return f'Nothing(name={self.name}, age={self.age})'


if __name__ == "__main__":
    print(Nothing())

代碼執(zhí)行效果如下:

重寫 __str__() 后與 默認(rèn)打印的類實(shí)例對比如下圖所示:

孰優(yōu)孰劣一目了然

后話

本次介紹及重寫了 __str__(),在重寫之后,可以更為方便且準(zhǔn)確的描述信息類實(shí)例的信息,這對于我們的編程工作是有幫助的。更多相關(guān)Python __str__()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python文件寫入實(shí)例分析

    python文件寫入實(shí)例分析

    這篇文章主要介紹了python文件寫入的用法,實(shí)例分析了Python文件寫入的使用技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-04-04
  • 基于Python手寫拼音識別

    基于Python手寫拼音識別

    這篇文章主要介紹了基于Python手寫拼音識別,因項目組需要使用到拼寫識別,考慮到每個字母的復(fù)雜度不高,所以使用KNN算法來嘗試實(shí)現(xiàn),下面來看看具體實(shí)現(xiàn)詳情吧,需要的小伙伴也可以參考一下
    2022-01-01
  • pytorch模型訓(xùn)練的時候GPU使用率不高的問題

    pytorch模型訓(xùn)練的時候GPU使用率不高的問題

    這篇文章主要介紹了pytorch模型訓(xùn)練的時候GPU使用率不高的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python實(shí)現(xiàn)實(shí)時監(jiān)控文件的方法

    python實(shí)現(xiàn)實(shí)時監(jiān)控文件的方法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)實(shí)時監(jiān)控文件的3種方法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Appium自動化測試實(shí)現(xiàn)H5頁面元素定位

    Appium自動化測試實(shí)現(xiàn)H5頁面元素定位

    本文主要介紹了Appium自動化測試實(shí)現(xiàn)H5頁面元素定位,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • python如何變換環(huán)境

    python如何變換環(huán)境

    在本篇內(nèi)容里小編給各位分享的是一篇關(guān)于python如何變換環(huán)境的相關(guān)基礎(chǔ)文章,有需要的朋友們可以參考下。
    2020-07-07
  • 在tensorflow以及keras安裝目錄查詢操作(windows下)

    在tensorflow以及keras安裝目錄查詢操作(windows下)

    這篇文章主要介紹了在tensorflow以及keras安裝目錄查詢操作(windows下),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python模塊介紹與使用詳細(xì)講解

    Python模塊介紹與使用詳細(xì)講解

    這篇文章主要介紹了Python模塊介紹與使用詳細(xì)講解,包括模塊的相關(guān)概念和使用方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • python序列化與數(shù)據(jù)持久化實(shí)例詳解

    python序列化與數(shù)據(jù)持久化實(shí)例詳解

    這篇文章主要介紹了python序列化與數(shù)據(jù)持久化,結(jié)合實(shí)例形式詳細(xì)分析了Python序列化與數(shù)據(jù)持久化相關(guān)原理、實(shí)現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2019-12-12
  • Python算法輸出1-9數(shù)組形成的結(jié)果為100的所有運(yùn)算式

    Python算法輸出1-9數(shù)組形成的結(jié)果為100的所有運(yùn)算式

    這篇文章主要介紹了Python算法輸出1-9數(shù)組形成的結(jié)果為100的所有運(yùn)算式,然后介紹了另外一個相關(guān)實(shí)例,具體內(nèi)容請參閱正文,需要的朋友可以參考下。
    2017-11-11

最新評論