固定されたツイート

投稿が拡散されているようなので、ちょっと宣伝させてください。
Pythonの入門書を書いていますので、ぜひお読みください!
amzn.asia/d/gCfTi93
日本語
柴田 淳-【新刊】みんなのPython第五版/Pythonで学ぶはじめてのプログラミング入門教室
93.2K posts

@ats
【新刊】みんなのPython第五版(二刷),Pythonで学ぶはじめてのプログラミング入門教室などの著者。Pythonで作ったコンテンツで世田谷に戸建てを建てました。たまに企業や学会,技術イベントに呼ばれてお話しします。





PEP 661(Sentinel Values、番兵値(ばんぺいち))が承認され、Python 3.15に実装される。 Pythonにおいて「Noneでは表現しきれない状態」をどう扱うかという問題に対し、番兵値(Sentinel value)の標準化がPEP 661として採用されたのである。これは一見地味だが、実務のコード品質に直結する重要な変更である。 これまでPythonでは、「引数が未指定なのか」「Noneが明示的に渡されたのか」を区別するのが難しかった。そのため開発者は次のように、独自の番兵値を作ることが多かった。 _sentinel = object() def func(x=_sentinel): if x is _sentinel: print("未指定") elif x is None: print("Noneが明示された") else: print(x) このような書き方は一般的ではあったが、毎回自作する必要があり、可読性や一貫性に課題があった。そこでPEP 661では、このパターンを言語として整理しようとしている。 この変更の本質は、Noneの役割を整理する点にある—— peps.python.org/pep-0661/





