PEP 661として提案されていた「Sentinel Values(番兵値 - ばんぺいち)」が承認され、Python 3.15に実装されることが決定しました。 Pythonにおいて「特別な値」をどう扱うかは、意外と重要なテーマですが、これまでは None や独自オブジェクトを「運用でカバー」する形で代用されてきました。PEP 661 により「Sentinel(番兵値)」が正式に整理され、これまで曖昧に扱われてきた「値が未指定である状態」を、安全かつ分かりやすく表現できるようになります。 本記事では、その背景と使いどころを初心者にも分かる形で段階的に解説します。 Sentinel値とは何かSentinel(センチネル)とは「番兵」のことで、プログラミングのコンテキストで言うと「特別な意味を持つためだけに用意された値」のことです。 たとえば「値が設定されていない」ことを表すために使われます。

