組み込み関数を隠してしまった場合
この記事は Python Tips Advent Calendar 2012 19日目の記事です。
Python には何も import しなくても使える組み込み関数がありますが、これらと同名の変数を定義することができます。
>>> id # id 組み込み関数 <built-in function id> >>> id = 10 # 同名の変数を定義 >>> id # id 組み込み関数が隠れる 10
このように、同名の変数を定義すると、その組み込み関数は見つからなくなります。
もしこの状態で組み込み関数を使いたいなら、以下のように __builtin__ モジュールから取得します。
>>> import __builtin__ >>> __builtin__.id <built-in function id>
__builtins__ (s 付き)を使うのは間違いです。これは実装の詳細であるため、ポータビリティは無く、動作は保証されません。
.