讓你的Python輸出更有 B 格
引言
每種編程語言都可以輸出。在控制臺中打印變量可以被認(rèn)為是最基本的調(diào)試方法,這對 Python 來說更是如此。然而,您是否對輸出的格式感到困擾? 例如:
本文介紹的 Pretty Printer 庫將為你很好的解決上述問題。
1.基本用法
首先,我們需要導(dǎo)入庫,并編寫一個(gè)示例字典。
import pprint as ppsample_dict = {'name': 'Chris','age': 33,'message': 'Thank you for reading my article!','topic':'Python Programming'}
現(xiàn)在,如果我們簡單地打印這個(gè)字典,所有的內(nèi)容都會在一行中輸出。
print(sample_dict)
好吧,這可能不算太糟,但是如果我們有更多的鍵值對或者一些值非常長呢?它將很難閱讀。現(xiàn)在,讓我們來看看 Pretty Printer 庫可以做什么。
pp.pprint(sample_dict)
首先,每個(gè)鍵值對都顯示在一行中,這樣更具可讀性。此外,你可能沒有注意到,字典是自動按照鍵名的字母順序排序。
2. 文本換行
我想大多數(shù) Python 開發(fā)人員都知道上面所示的基本用法。但是你是否知道 Pretty Printer 庫有更多的參數(shù)和標(biāo)志,可以用來進(jìn)一步定制輸出?
其中一個(gè)示例用法是文本換行。假設(shè)我們不僅滿足于每行有一個(gè)鍵值對,而且還希望在值太長時(shí)進(jìn)行文本換行。在這種情況下,我們可以使用 width 參數(shù)。
pp.pprint(sample_dict, width=30)
因此,我們可以使用 width 來約束行的長度,以實(shí)現(xiàn)更好的可讀性。除此之外,indent 參數(shù)還可以在每一行的前面添加縮進(jìn)。
pp.pprint(sample_dict, width=30, indent=10)
3. 嵌套對象截?cái)?/span>
有時(shí)候,我們可能不想查看我們打印到輸出的所有細(xì)節(jié)。例如,我們可能希望防止遞歸打印的內(nèi)容,或者只是對嵌套對象中更深層次的內(nèi)容不感興趣。
假設(shè)我們有一個(gè)如下所示的嵌套 Python 列表。
sample_list = ['level1', ['level2', ['level3']]]如果我們使用普通 Pretty Printer ,就不會有什么不同于普通 print 的輸出。
pp.pprint(sample_list)
但是,如果我們指定了 depth 參數(shù),任何比參數(shù)更深的內(nèi)容都會被截?cái)唷?/span>
pp.pprint(sample_list, depth=2)# ORpp.pprint(sample_list, depth=1)

4. 實(shí)例化 Pretty Printer
到目前為止,這還是相當(dāng)酷的。但是,每次編寫上面演示的代碼只是為了打印某些內(nèi)容,可能會過于冗長。
當(dāng)你想使用 Pretty Printer 不只一次,而是多次。每次編寫帶參數(shù)的函數(shù)也很累。實(shí)際上,我們可以用所有必要的參數(shù)實(shí)例化 Pretty Printer 類。然后,我們可以一次又一次地重復(fù)使用它。
PrettyPrinter類位于pprint軟件包的根級別。因此,讓我們重新導(dǎo)入它。
import pprint然后,我們可以像下面這樣在構(gòu)造函數(shù)中傳遞參數(shù)。
pp = pprint.PrettyPrinter(depth=2)在此之后,我們得到了具有預(yù)定義樣式的實(shí)例,該樣式可以直接使用。
pp.pprint(sample_list)
總結(jié)
在本文中,我介紹了 Python 內(nèi)置的 Pretty Printer 庫。當(dāng)然,我們不必使用它來替換默認(rèn)的打印函數(shù)。我們必須在使用之前導(dǎo)入它,代碼將變得冗長。但是,在某些情況下,我們可以使用它來生成更好的可讀輸出,從而簡化編程和調(diào)試活動。
