-> None と書いたけど、実行するとき何かしてる?
第14章で tenki の cli.py に、こう書きました。
def main() -> None:
...-> None は「この関数は何も返さない」という意味の型ヒント(type hint。引数や戻り値の型を書き添えたもの)です。def to_fahrenheit(celsius: float) -> float: のように、引数の後ろに : 型、閉じかっこの後ろに -> 型 と書きます。
TypeScript を書いたことがあれば、これは見慣れた形でしょう。そして、TypeScript ではこう期待します。型が合わない値を渡したら、コンパイルの段階でエラーになって止まる。
では Python ではどうでしょうか。第1章で見たとおり、Python には「先にコンパイルして実行ファイルを作る」段階がありません。python main.py と打てば、その場で読んで実行します。
| 疑問 | この章の答えの場所 |
|---|---|
| 型ヒントは、実行時に何をする? | 何もしない(実際に動かして確かめる) |
| では、型を検査するのは誰? | mypy・pyright という別の道具 |
| ruff・pytest は何をする道具? | 書き間違いの検出と整形・テスト |
| 道具やエディタは、どの python を見ている? | 章の後半で、実際に結果が変わる様子を見る |
最後の疑問は、第12章の venv、第14章の .pth とつながる、この章の山場です。「pytest を打ったら ModuleNotFoundError」「エディタで import に赤い波線」の原因は、ほとんどこれです。
※2026年9月時点(Python 3.13)の情報です。