
__init__
を使って属性を初期化する
クラスから生成するオブジェクトを初期化するために、
CountFromBy
クラスに
__init__
を追加し
てみましょう。
とりあえず、
pass
だけを実行する空の
__init__
メソッドを追加しましょう(このあと振る舞いを追
加します)。
class CountFromBy:
def __init__(self) -> None:
pass
def increase(self) -> None:
self.val += self.incr
v
と
i
の値を使ってクラスの
属性(
self.val
と
self.incr
)を
初期化します。
__init__
の
引数として
v
と
i
を追加。
これで
v
と
i
の値を何とか確保すれば、変更後の
__init__
がクラスの属性を初期化します。しかし、
別の疑問が生まれます。どのようにして
v
と
i
の値を指定するのでしょうか?
この疑問に答えるためには、
このバージョンのクラスを試して結果を確認する必要があります。さっそく試してみましょう。
class CountFromBy:
def __init__(self, v: int, i: int) -> None:
self.val = v
self.incr = i
def increase(self) -> None:
self.val += self.incr
increase
にすでにあるコードから、名前の前に
self
を付けるとクラスの属性にアクセスできること
がわかっています。つまり、
self.val ...