Pythonを書いているとき、こんな風に思ったことはありませんか?
この変数って何が入るんだっけ…?
関数の戻り値、文字列だったっけ数値だったっけ…?
Pythonは柔軟な言語ですが、柔軟すぎて時にバグの温床になることも。。
そんなときに役立つのが「型ヒント(type hints)」という機能です。
この記事では、文系出身のプログラマーやPython初学者向けに、やさしく型ヒントの基本と応用、そして Literal
型などの便利な書き方を紹介します。
この記事は広告を含みます。
型ヒントってなに?
Pythonでは、変数や関数に対して「これはこういう型だよ〜」とヒントを書くことができます。
def greet(name: str) -> str: return f"Hello, {name}!"
name: str
→ 引数nameは文字列-> str
→ 戻り値も文字列
こんな風に書いておくと、コードの意図がすごくわかりやすくなります。
基本の型ヒント一覧
- よく使う型一覧
int
:整数float
:小数str
:文字列bool
:真偽値list[str]
:文字列のリストdict[str, int]
:文字列キー+整数値の辞書
文系向け:型ヒントのうれしい効果
- 読みやすさUP:意図がすぐわかる
- バグ予防:mypyなどのツールでエラー検出できる
- エディタ補助:補完やサジェストが賢くなる
コードを書き慣れてない人ほど、型ヒントの恩恵は大きいです!
より便利な型ヒントたち
Optional型:値が「あるかないか」
from typing import Optional def find_user(id: int) -> Optional[str]: if id == 1: return "Alice" return None
Optional[str]
は、「文字列 or None」を意味します。
Union型:複数の型を許す
from typing import Union def to_str(value: Union[int, float]) -> str: return str(value)
Union[int, float]
→ 整数でも小数でもOK!
Literal型:特定の値だけ許す!
from typing import Literal def get_status(status: Literal["ok", "error"]) -> str: if status == "ok": return "成功!" else: return "失敗。。"
これ、API作成の時に重宝しますよね。
- Literalのポイント
- 指定した値以外はNGにできる
- 列挙型より軽く使える
- コードの意図が明確になる
まとめ:型ヒントは文系プログラマーの味方!
「型ってムズカしそう…」と思ってた方こそ、実は型ヒントが心強い味方になります。。!
最初は慣れなくても、少しずつ書いてみると
コードの見通しが良くなって、エラーにも強くなるはずです!
実行しなくても文章を読むだけで、これあれだねぇ~がわかるのは、品質向上に一役となるはずです!Reviewer目線でも。