91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用python中的__str__ 和__repr__

發布時間:2021-11-19 14:54:15 來源:億速云 閱讀:119 作者:iii 欄目:編程語言

本篇內容主要講解“怎么使用python中的__str__ 和__repr__”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么使用python中的__str__ 和__repr__”吧!

1. 引言

在學習面向對象的時候,我們知道在 python 中有一類特殊的方法,叫做魔法方法,這種方法的特點如下: 1. 方法定義的時候以兩個下劃線開頭和兩個下劃線結尾:如__init____str____repr__ 2. 這類方法一般不需要我們手動調用,在滿足某個條件的時候會自動調用,這個滿足的條件我們可以成為調用時機。

在Python 中有兩個魔法方法都是用來描述對象信息的,__str____repr__,那為什么要定義兩個這樣的方法呢,其實是他們設計的目的是不一樣的: 1. __repr__的目標是準確性,或者說,__repr__的結果是讓解釋器用的。 2. __str__的目標是可讀性,或者說,__str__的結果是讓人看的。

2. 分析

那下邊,我們詳細的來看一下,他們的用法: 在不重寫__str__ 和 __repr__的情況下,打印對象的輸出結果不太友好,是對象的內存地址,即 id 的結果。

# 定義 Person 類class Person(object):def __init__(self, name):self.name = namep = Person("isaac")

以下為測試輸出的結果:

>>> print(p)<__main__.Person object at 0x10f29b940>>>> p<__main__.Person object at 0x10f29b940>>>> p.__str__()'<__main__.Person object at 0x10f29b940>'>>> p.__repr__()'<__main__.Person object at 0x10f29b940>'

這樣的輸出結果,并不是我們想要的結果,此時我們重寫__str__ 和 __repr__方法。

2.1 重寫__str__ 方法

# 定義 Person 類class Person(object):def __init__(self, name):self.name = namedef __str__(self):return "__str__ 方法 " + self.namep = Person("isaac")

以下為測試結果:

>>> print(p)__str__ 方法 isaac>>> str(p)'__str__ 方法 isaac'>>> f"{p}"'__str__ 方法 isaac'>>> p.__str__()'__str__ 方法 isaac'>>> p<demo.Person object at 0x10e0e3588>

此時我們發現在使用 print 打印對象、對象的格式化輸出以及調用 str 方法,調用的都是__str__方法。但在交互環境下,直接輸出 對象的時候,沒有調用__str__ 方法,輸出的結果仍然是 id 的結果。

2.2 重寫__repr__ 方法

# 定義 Person 類class Person(object):def __init__(self, name):self.name = namedef __str__(self):return "__str__ 方法 " + self.namedef __repr__(self):return "__repr__ 方法 " + self.namep = Person("isaac")

此時,我們再來看輸出的結果,

>>> p__repr__ 方法isaac>>> p.__repr__()'__repr__ 方法isaac'>>> print(p)__str__ 方法 isaac

通過簡單的對比,我們發現,在交互環境下,直接輸出對象,調用的__repr__ 方法。 另外還需要注意的是,如果將對象放在容器中進行輸出,調用的是__repr__ 方法。

>>> [p][__repr__ 方法 isaac]>>> (p)__repr__ 方法 isaac>>> {"1":p}{'1': __repr__ 方法 isaac}>>> print([p])[__repr__ 方法 isaac]

到此,相信大家對“怎么使用python中的__str__ 和__repr__”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韶关市| 天门市| 徐汇区| 石家庄市| 澄城县| 望谟县| 会东县| 广东省| 永福县| 赤城县| 陆河县| 道真| 红安县| 图木舒克市| 三明市| 宁远县| 桃源县| 浦北县| 博野县| 呼玛县| 呼和浩特市| 礼泉县| 丁青县| 高青县| 瑞安市| 盱眙县| 华安县| 沂水县| 霸州市| 通州市| 麻栗坡县| 葵青区| 错那县| 福安市| 三明市| 伊宁县| 永仁县| 大丰市| 青浦区| 临沭县| 呼和浩特市|