Javaで言うところのtoString
であるpythonの__str__メソッドはformat()
やprint()
で使用した場合に呼ばれます。
クラスインスタンスの全フィールドを表示したいことがあります。その方法をご紹介します。
目次
環境
Python 3.8.5
結論
__dict__
を使用します。
サンプルコード
from datetime import date
class Hoge:
def __init__(self, text, num, date):
self.text = text
self.num = num
self.date = date
def __str__(self):
return str(self.__dict__)
h = Hoge(text='hoge_text', num=123, date=date.today())
print(h)
実行結果
{'text': 'hoge_text', 'num': 123, 'date': datetime.date(2020, 12, 1)}
参考
https://docs.python.org/ja/3/reference/datamodel.html#object.str