pprintの表示書式について
クラスの表示
クラスやインスタンスをpprintで表示すると、プロパティ関係は何も表示されません。
例 クラス、インスタンスの表示
from pprint import pprint class Test: def __init__(self): self.title = '題名' self.name = '名前' test = Test() pprint(Test) # クラスTestの表示 pprint(test) # インスタンスtestの表示これを実行すると以下のように表示されます。
<class '__main__.Test object at 0x7f450299c128> # クラスTestの表示 <class '__main__.Test'> # インスタンスtestの表示
表示書式のカスタマイズ
クラスのpprint表示の書式を変更する場合、__repr__メソッドで書式の指定を行います。
例
from pprint import pprint
class Test:
def __init__(self):
self.title = '題名'
self.name = '名前'
def __repr__(self):
# プロパティの名前と値を配列にする
data = []
for key, value in self.__dict__.items():
data.append(key + ':' + str(value))
result = 'Class:' + self.__class__.__name__ + ' ('
result += ','.join(data) + ')'
return result
test = Test()
pprint(test)
実行すると以下のように表示されます。
Class:Test (name:名前,title:題名)