「Python」の記事
6件 RSS で購読
6件
Python の属性探索順序: データディスクリプタがインスタンスの __dict__ に勝つ理由と __set_name__
obj.x はインスタンスの __dict__ より先にデータディスクリプタを見ます。__set__ か __delete__ の有無で決まる探索順序、cached_property が上書きされる理由、クラス作成後に追加したディスクリプタで __set_name__ が呼ばれない場合を整理しました。
Python のジェネレーターで return した値はどこへ行くのか: StopIteration.value と PEP 479
ジェネレーターの return 値は for 文では受け取れず、StopIteration.value に入ります。yield from での受け取り方、ジェネレーター内の StopIteration が RuntimeError になる理由、close() の戻り値を整理しました。
Python の with ブロックで例外が消えるのはなぜか: __exit__ の戻り値と finally 内の return
__exit__ が真の値を返すと with 文は例外を抑制します。finally 内の return とは何が違うのか、狙った例外だけを握りつぶす抑制用コンテキストマネージャの書き方を Python 公式ドキュメントに沿って整理しました。
Python のデフォルト引数に [] を書いてはいけない理由: デフォルト値は def の実行時に一度だけ作られる
def f(a, L=[]) を何度も呼ぶとリストが増え続けます。Python 公式ドキュメントが説明するデフォルト値の評価タイミング、__defaults__、None を使う書き方、dataclass の default_factory を例で整理しました。
トポロジカルソートと循環検出:入次数で順序を決め、詰まった箇所を見つける
依存関係を実行順序に変えるトポロジカルソートを入次数の方法で実装し、循環があるときに何が残るのか、Python graphlibのTopologicalSorterとCycleErrorの挙動を整理します。
Pythonの.pycはいつ作り直されるのか:timestampとハッシュベースの無効化
CPythonは既定で、ソースの更新時刻とサイズを見て.pycが最新かどうかを判断します。この方式が変更を見逃す場合、checked-hashとunchecked-hashの違い、compileallの使い方をPython 3.14.8のドキュメントに基づいて整理しました。
該当する記事がありません。別の言葉で検索してみてください。