1. クラスの表示

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:題名)