
countformby
はさらに処理を行う
CountFromBy
に適切なデフォルトを設定する
CountFromBy
クラスの現在バージョンの
__init__
メソッドを思い出してみましょう。
...
def __init__(self, v: int, i: int) -> None:
self.val = v
self.incr = i
...
...
def __init__(self, v: int=0, i: int=1) -> None:
self.val = v
self.incr = i
...
330
8
章
v
と
i
の 値 を 渡 さ ず に こ の ク ラ ス か ら 新 た な オ ブ ジ ェ ク ト を 生 成 し よ う と し た ら、
TypeError
が発生しましたよね。
313
ページでは、
CountFromBy
クラスを「カウンタは
0
から始まり、要求に応じて
1
増え
る」というデフォルトの振る舞いにしたいと述べました。関数の引数にデフォルト値を指定す
る方法はすでに説明しました。メソッドでも同じで、
def
行にデフォルト値を設定します。
CountFromBy
コードにこの小さな(しかし重要な)変更を行ってからファイルを保存する
と、今回はオブジェクトがデフォルトの振る舞いで生成できることがわかります。
このバージョンの
__init__
メソッドは、呼び出される
たびに
2
つの引数値が指定
されることを期待しています。
おっと、これはダメです。
メソッドは関数なので、
引数のデフォルト値を ...