2011-12-01から1ヶ月間の記事一覧

tips

モジュールオブジェクトは sys.modules に束縛されている。グローバル変数を使う関数をインポートしてからその関数のあるモジュールを解放し、関数を実行するとエラーになる。関数は自分の存在するモジュールへの参照を持たないためである。

[Python] compile()

compile() によってソースコードをコードオブジェクト (types.CodeType) か AST (ast.AST) に変換できる。AST は再度 compile() することによってコードオブジェクトに変換できる。 最も身近なコードオブジェクトは関数オブジェクト (types.FunctionType) の…

Python の最適化について

テンプレートエンジンの最適化をした際のノウハウ。 文字列操作がかなりのコストを占める。 basestring.join, basestring.encode, basestring.decode は遅い。簡単なテンプレートでは実行時間の過半をこれらが占めることもある。 str += str は list.append …