Python3の__builtin__モジュールはどこにあるのですか?なぜ改名されたのですか?
質問
私が気になったのは
__builtin__
モジュールとその使い方が気になったのですが、Python3では見当たりません!? なぜ移動されたのでしょうか?
Python 2.7
>>> import __builtin__
>>>
Python 3.2
>>> import __builtin__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named __builtin__
>>>
どのように解決するのですか?
この
__builtin__
モジュールは
builtins
に変更されました。
この変更により、平均的なPython開発者にとっての2つの混乱の原因が解決されます。
-
それは
'__builtins__'
または'__builtin__'
がグローバルな名前空間にある場合、それはどうなるのでしょうか? ダーンs! -
は
__builtin__
a 特殊メソッド名 またはモジュール? 私は はわかりません。
このような混乱が生じるのは、主に違反した pep8 の規約に違反するためです。 また、モジュールに複数形がないことも、コミュニケーションを妨げています。 この2つは、Guidoが次のように説明しなければならない長さによって、大いに説明されます。 http://mail.python.org/pipermail/python-ideas/2009-March/003821.html :
[CPython]は、特別なマジック・エントリを含むグローバルに注目します。
__builtins__
(s'がついている) という特別なマジックエントリがあり、これが組み込み関数が検索される dict です。この dict が デフォルト である) 組み込みのディクショナリ (これは__builtin__.__dict__
ここで__builtin__
-- はビルトイン関数を定義したモジュールです。 スーパーバイザー権限が与えられます。
例えば
Python2.7
>>> import __builtin__
>>> vars(globals()['__builtins__']) is vars(__builtin__)
True
>>>
Python3.2
>>> import builtins
>>> vars(globals()['__builtins__']) is vars(builtins)
True
>>>
関連リソース :
その他の名称変更 http://docs.pythonsprints.com/python3_porting/py-porting.html#name-changes
の簡潔な説明のために
__builtins__
が名前解決にどのように使われるかを簡潔に説明します。
Pythonの__builtin__モジュール
関連
-
[解決済み] django.urls からパスをインポートできません。
-
[解決済み] 悪いマジックナンバーエラーって何?
-
[解決済み] フルパスでモジュールをインポートするには?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 億の相対的輸入
-
[解決済み] なぜ[]はlist()よりも速いのですか?
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】withステートメントで使用されるopenをモックするには(PythonのMockフレームワークを使用して)どうすればよいですか?)
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例