
CountFromBy
の表現方法を定義する
__repr__
は特殊メソッドですが、組み込み関数
repr
としても利用できます。組み込み関
数
help
で
repr
の機能を調べると、「
Return the canonical string representation of the object.
」
(オブジェクトの印字可能な表現を含む文字列を返す)という説明でした。つまり、組み込み関
数
help
は
repr
(つまり
__repr__
)がオブジェクトの文字列バージョンを返す必要があると
言っているのです。
「オブジェクトの文字列バージョン」がどのようなものであるかは、オブジェクトがそれぞれ
何を行うかによります。クラスの
__repr__
メソッドを書くことでオブジェクトに何が起こ
るかを制御できます。
まずは、
CountFromBy
クラスに
__repr__
のための新たな
def
行を追加しましょう。
__repr__
は、必須の
self
以外の引数を取りません(
__repr__
はメソッドでしたね)。こ
の本のやり方に従い、このメソッドが文字列を返すことがわかるようにアノテーションも追加
しましょう。
クラスにこの短い関数を追加すると、インタプリタは
>>>
プロンプトで
CountFromBy
オブジェクトを表示するときは常にこの関数を使います。組み込み関数
print
も
__repr__
を使ってオブジェクトを表示します。
変更したコードを試す前に、前回の「試運転」で明らかになった別の問題を取り上げてみま
しょう。
def __repr__(self) ...