3:関数名から想像できる型の戻り値を返す¶
変数名、関数名から「想像できること」はとても大切です。 特にプログラミングにおいては「型」が想像できることがとても重要です。 特にPythonは 動的型付け言語 なので、関数がどんな型で戻り値を返すかを制限できません。
次の関数にはどんな問題があるか考えてみましょう。
具体的な失敗¶
def is_valid(name):
if name.endswith(".txt"):
return name[:-4] + ".md"
return name
この is_valid
関数の問題は、関数名から想像できる「戻り値の型」と実装が違うことです。
is_
や has_
で始まる関数名の場合は bool が返る関数のように思えてしまいます。
(中略)詳細は書籍 自走プログラマー をご参照ください
ベストプラクティス¶
is_
、 has_
で始まる変数名、関数名の場合はboolを扱うようにします。
def is_valid(name):
return not name.endswith(".txt")
これで if is_valid():
のようにif文で正しく扱えます。
大切なのは関数名から期待される動作や戻り値の型と、実装を一致させることです。
(中略)詳細は書籍 自走プログラマー をご参照ください