「あの人も読んでる」略して「も読」。さまざまな寄稿者が最近気になった情報や話題をシェアする企画です。他のテックな人たちがどんな情報を追っているのか、ちょっと覗いてみませんか?
はじめまして。今回から「も読」に参加させていただくことになりました Kanade (@kanade_k_1228) です。よろしくお願いします。
Python の型チェッカーの話
Ruff に搭載される新しい型チェッカー Red-knot について
Python では以下のように型アノテーションを記述できますが、
def add(x: int, y: int) -> int:
return x + y
実際に型をチェックする機能は Python 本体には含まれておらず、mypy や pyright、pyre といった外部ツールに任されています。言語としては「型の文法」をサポートしつつ「型検査機構」を標準では提供しないという、なかなか興味深い作りになっています。
ツールごとに型システムの対応範囲が微妙に異なるため、同じ型アノテーションでもチェック結果が違うことがあります。私は最近 mypy から高度な type narrowing ができる pyright に移行しています。
ここ数年の Python を取り巻く状況は、かつての AltJS(TypeScript や CoffeeScript など)戦国時代を思い起こさせます。JavaScript が TypeScript に進化(?)したように、Python も数年後には違う姿になっているかもしれませんね。