日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Python 的 __str__ 和 __repr__ 方法對比

瀏覽:12日期:2022-07-12 14:42:18

閱讀到 Strings 中關(guān)于轉(zhuǎn)換對象為字符串的內(nèi)容,介紹了 repr 函數(shù),趁著還沒有真正了解 Python 面向?qū)ο蟮纳枧c熱度,感性上理解一下 repr 與 str 這兩個函數(shù)的區(qū)別。

Python 的全局方法 repr 和 str 會映射到對象的 __repr__ 和 __str__ 的方法調(diào)用,還有 str(obj) 時會調(diào)用哪個方法,以及 print(obj) 和調(diào)試 Python 代碼時的對象顯示會調(diào)用哪個方法呢?這就是本文想要印證的內(nèi)容。

恰如 Java 的 System.out.println(obj) 或 'hello' + obj 都會調(diào)用 Java 對象的 toString() 方法,那么 Python 中是怎么一回事呢?

來自某本 Python 入門書的解釋 repr 和 str:

repr: formal string representation of a Python object str: informal string representation of a Python object,或者說 printable string representation

首先 repr 是 representation 的意思,一個是正式,另一個是非正式,看起來 repr 比 str 顯得重要些。

對于內(nèi)置的 Python 對象我們可以用 repr, print, 和 str 函數(shù),如針對 list 類型

>>> repr([1,2])’[1, 2]’>>> print([1,2])[1, 2]>>> str([1,2])’[1, 2]’

但是具體上面三個函數(shù)中分別調(diào)用了 list 的什么方法就不可而知了,這時候定義一個自己的類最能說明問題。測試環(huán)境為 IntelliJ, 以調(diào)試截圖來說明分別為 __str__ 和 __repr__ 幾種組合情況

只定義了 __str__ 方法

Python 的 __str__ 和 __repr__ 方法對比

說明:在只定義了 __str__ 方法的情況下

調(diào)試時 IntelliJ 在行內(nèi)顯示對象為 __str__ 的輸出,但變量窗口中顯示的是默認的 __repr__ 的輸出 repr 始終堅持調(diào)用默認的 __repr__ 方法 str 轉(zhuǎn)型函數(shù)調(diào)用了 __str__ 方法 print 調(diào)用了 __str__ 方法

只定義了 __repr__ 方法

Python 的 __str__ 和 __repr__ 方法對比

說明:在只定義了 __repr__ 方法的情況下,可以看出 __repr__ 方法極其強勢,它壟斷了一切的調(diào)用,repr, str, 和 print 函數(shù),甚至是 IntelliJ 的調(diào)試顯示都必須以 __repr__ 方法為核心。

以上所有的情況都是調(diào)用 __repr__ 方法,沒得選擇

同時定義了 __repr__ 和 __str__ 方法

Python 的 __str__ 和 __repr__ 方法對比

說明:在同時定義了 __repr__ 和 __str__ 方法的情況下,__str__ 方法反而能扳回來。除了明確的 repr 會調(diào)用 __repr__ 方法,和調(diào)試時變量窗口中顯示對象會調(diào)用 __repr__ 方法外,其他時候都是 __str__ 占優(yōu)。具體為

repr 和 IntelliJ 調(diào)試時變量窗口顯示變量調(diào)用 __repr__ 方法 IntelliJ 調(diào)試時行內(nèi)顯示變量調(diào)用了 __str__ 方法 str 轉(zhuǎn)型操作調(diào)用了對象的 __str__ 方法,這不能解釋為 informal 非正式的 print 調(diào)用了 __str__ 來獲得對象輸出字符串

另外,格式化字符串時的調(diào)用的對象方法與 print 時是一樣的,例如下面的格式化代碼

f1 = '%s' % tf2 = '{}'.format(t)

Python 不知道像 Java 那樣由字符串加上一個對象

'this is ' + t #Java 中會展開為 'this is ' + t.toString()

Python 會報以下錯誤

TypeError: can only concatenate str (not 'Test') to str

說這里的 + 號只能連接兩個字符串,除非定義了 __add__ 和 __radd__ 方法,對應關(guān)系分別為

t = Test()z1 = ’hello’ + t #相當于 t.__radd__(’hello’)z2 = t + ’hello’ #相當于 t.__add__(’hello’)

Python 的 __xyz__ 也挺魔幻的。

以上就是Python 的 __str__ 和 __repr__ 方法對比的詳細內(nèi)容,更多關(guān)于Python __str__ 和 __repr__ 的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩av成人高清| 欧美日韩一视频区二区| 久久久精品日韩| 国产精品久久久久久久久久妞妞| 日韩免费在线| 麻豆视频一区二区| 久久亚洲一区| 日本在线视频一区二区| 国产一区二区三区亚洲综合| 欧美亚洲自偷自偷| 国产精品视区| 91精品推荐| 伊人久久亚洲美女图片| 国产精品色网| 蜜桃av在线播放| 国语精品一区| 精品成av人一区二区三区 | 久久久久国产精品一区二区| 国产欧洲在线| 99久久99久久精品国产片果冰| 国产精品免费不| 国产精品99在线观看| 国产成人精品免费视| 91综合视频| 精品一二三区| 国产精品xx| 国产+成+人+亚洲欧洲在线| 久久尤物视频| 精品免费av一区二区三区| 国产伦精品一区二区三区在线播放| 91福利精品在线观看| 婷婷成人av| 2023国产精品久久久精品双| 日韩午夜一区| 亚洲精品一二| 国产精品男女| 日韩三区免费| 在线视频亚洲| 综合在线一区| 亚洲精品高潮| 麻豆国产91在线播放| 天堂日韩电影| 蜜臀久久99精品久久久久久9| 亚洲精品亚洲人成在线观看| 国产精品毛片aⅴ一区二区三区| 成人黄色av| 久久午夜影视| 欧美伊人久久| 欧洲亚洲一区二区三区| 日本欧美在线看| 一区二区三区四区日本视频| 亚洲人成亚洲精品| 青青伊人久久| 久久久噜噜噜| 亚洲欧洲专区| 精品中文一区| 国产aⅴ精品一区二区三区久久 | 久久精品人人| 欧美亚洲综合视频| 日韩综合一区二区三区| 美女精品在线| 国产午夜精品一区二区三区欧美| www在线观看黄色| 福利欧美精品在线| 欧美久久一区二区三区| 日产欧产美韩系列久久99| 国产毛片久久| 一二三区精品| 久久国产精品免费一区二区三区| 国产精品一区二区三区av麻| 国产精品videossex| 精品久久国产一区| 中文字幕在线看片| 不卡在线一区| 日韩激情啪啪| 精品中文在线| 亚洲二区免费| 蜜臀91精品一区二区三区| 亚洲麻豆一区| 九九99久久精品在免费线bt| 91亚洲自偷观看高清| 欧美午夜精彩| 国产模特精品视频久久久久| 首页国产欧美久久| 亚洲bt欧美bt精品777| 国产精品亚洲一区二区在线观看| 国产精品13p| 韩日一区二区三区| 日韩精品福利一区二区三区| 精品入口麻豆88视频| 悠悠资源网久久精品| 欧美一区二区三区久久精品| 日韩大片在线| 中文字幕一区二区三区四区久久| 91精品在线免费视频| 亚洲综合电影| 激情丁香综合| 国产欧美在线| 激情欧美亚洲| 国产精品超碰| 视频一区视频二区在线观看| 精品中文字幕一区二区三区 | 国产精品一区二区三区美女 | 日韩在线免费| 亚洲精品综合| 国产精品第一| 久久精品国产www456c0m| 蜜臀91精品一区二区三区| 国产精品成人**免费视频| 国产一区二区高清| 樱桃视频成人在线观看| 亚洲精品第一| 中日韩男男gay无套| 国产精东传媒成人av电影| 日韩在线a电影| 色天使综合视频| 久久亚洲人体| 日本午夜免费一区二区| 影视先锋久久| 国产福利片在线观看| 中文视频一区| 日韩精品诱惑一区?区三区| 91麻豆精品| 麻豆91精品| 欧美va天堂在线| 色网在线免费观看| 精品国内亚洲2022精品成人| 无码日韩精品一区二区免费| 亚洲一区黄色| 人人精品亚洲| 日韩欧美在线中字| 秋霞影院一区二区三区| 色一区二区三区四区| 精品视频免费| 精品久久国产一区| 国产精品大片| 免费在线播放第一区高清av| 国产精品伊人| 久久a爱视频| 国产在线视频欧美一区| 免费亚洲婷婷| 精品三区视频| 色吊丝一区二区| 亚洲精品国产嫩草在线观看 | 蜜桃视频免费观看一区| 伊人成人在线视频| 蜜臀国产一区| 激情欧美日韩一区| 亚洲一区日本| 免费在线欧美视频| 日韩av不卡在线观看| 免费观看亚洲天堂| 欧洲av不卡| 99精品视频在线| 蜜桃视频一区二区| 国产精品色在线网站| 精品五月天堂| 亚洲激情精品| 国产香蕉精品| 亚洲天堂成人| 日本午夜精品一区二区三区电影 | 国产精品一区二区精品视频观看 | 日韩中文字幕亚洲一区二区va在线| 精品国产中文字幕第一页| 久久久精品久久久久久96 | 久久国产人妖系列| 香蕉久久精品| caoporn视频在线| 久久国产视频网| 久久国产精品久久w女人spa| 中文字幕在线看片| 岛国精品一区| 欧美一区免费| 久久高清国产| 亚洲精品91| 亚洲一本视频| 欧美日韩中文字幕一区二区三区| 免费人成在线不卡| 欧美日韩在线观看视频小说| 国产精品久久久久久久久久10秀| 亚洲精品三级| 性色一区二区| 成人在线免费观看网站| 国产日韩一区| 18国产精品| 国产精品日本一区二区不卡视频 | 中文字幕在线视频久| 国产亚洲精品自拍| 激情久久99| 亚洲91在线| 伊人久久成人| 肉色欧美久久久久久久免费看| 日本久久一区| 亚洲色诱最新| 在线 亚洲欧美在线综合一区| www.51av欧美视频| 国产 日韩 欧美 综合 一区| 国产精品va视频| 国产精品亲子伦av一区二区三区| 色8久久久久|