タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

pythonとGCに関するmainyaaのブックマーク (2)

  • PythonのGCについて

    PythonのGarbageCollection 原文 Neil Schemenauer (翻訳:中村 成洋) ポータブルなGarbageCollection 概要 循環参照はリスト,タプル,インスタンス,クラス,辞書,関数に伴って見つかります. インスタンスの __del__ メソッドは正常に取り扱われます. 新しいタイプをGCの対象に追加するのは簡単です. このGCが有効なPythonは,通常のPythonとバイナリ互換です. 世代別GCが動いています(今は三世代).このオーバヘッドをpybenchで測ったら,大体4%くらい占めていました. 実質的に,すべての拡張モジュールは,不変に(私は,標準的な配布において 新しいものとcPickleを修正しなければなりませんでした)ならなければなりま せん.gcと呼ばれている新しいモジュールは,コレクターを調整して,デバッ ギングオプションをセッ

  • Python Tips

    このページは Python 2.3 くらいのときに書かれたものです。 内包表記とλ式 >>> fs = [ lambda: i for i in range(8) ] >>> fs[2]() 7 各 i ごとにクロージャが生成されるのではなく、ひとつのクロージャで i の値が書き換えられるため、このような結果になる。これは期待した動作ではないと思う。 同じ問題は for ループでも起こる。 >>> for i in range(8): ... fs.append( lambda: i ) ... >>> fs[2]() 7 これは、デフォルト引数をうまく使えば回避できる。 >>> fs = [ lambda i=i: i for i in range(8) ] >>> fs[2]() 2 デフォルト引数 これは Tutorial にも載っているけど。 >>> def f(xs = []):

  • 1