ビジネスパーソン・ガジェット置場 empty lot for business

営業や仕事、それに伴う生活を便利に楽にするツール、ガジェットを作ります。既にあるツールも自分用にカスタマイズ。

python: printに任意の文字列を追加したい(__repr__)

備忘録です。こういう使い方もありかなと。ちょっと良い使い方ではないかもしれませんが。

クラスで定義できる特殊メソッド__repr__

 

sentence = Sentence('今日は晴でした')

こんな感じのインスタンス変数を単純にprint()して表示すると

print(sentence)

>>>>22-10-20: 今日は晴でした

 

こんな感じで表示されるようにします。

文章の前に今日の日付が勝手につきます。

 

 

それには、クラスを定義するときに下記のように

import datetime as dt

class Sentence:
    def __init__(self, sentence):
        self.sentence = sentence
        
    def __repr__(self):
        today = dt.date.today().strftime('%y-%m-%d')
        return f'{today}: {self.sentence}'

__repr__関数の中でdatetime関数を使って日付を取得。そしてそれを引数として入力するsentenceと一緒に返す処理を書けばOK。

 

 

print()でなくてもrepr()でも呼び出せます。引数にインスタンス変数を入れます。

repr(sentence)

>>>>'22-10-20: 今日は晴でした'

 

 

もっと有用な使い方ができることを本で知った特殊メソッドなのですが、僕が作った例文がその有用性を十分表せていないかもですねー。