Python の __builtins__ 組み込みオブジェクトの詳細な分析

WBOY
リリース: 2016-07-06 13:30:00
オリジナル
1793 人が閲覧しました

パッケージとモジュールについてすでに学習している場合。
興味がありますか: Python では、str() int() dir() などの一部の組み込み関数を明示的にインポートせずに直接使用できるのはなぜですか?
その理由は、Python インタープリターが初めて起動されたときに、__builtins__ がすでに名前空間に存在しているためです (注: が存在します)

シェルに入って以下を確認してください:

リーリー


__builtin__ を再度インポートできます (注: はありません):

リーリー


この時点で、追加の __builtin__ オブジェクトがあり、それらが同じかどうかを判断できます:

リーリー


次に、ファイルからインポートします:

リーリー


結論:
__builtins__ は組み込みモジュール __builtin__ への参照であり、次の 2 つの違いがあります:

メインモジュール内、つまり他のファイルによってインポートされません。 __builtins__ は __builtin__ 自体への参照であり、この 2 つは同一です。

__builtins__ による推測は __builtin__.__dict__:
非「__main__」モジュール、つまりモジュールがインポートされた後、__builtins__ は __builtin__.__dict__ の一部である必要があり、組み込み自体ではなく、__builtin__.__dict__ への参照になります。現時点では、builtins Type はどこにでも表示されます。辞書。

組み込み関数を装飾する
公式 Python ドキュメントでは、組み込み関数を修飾する方法について説明しています:

リーリー

注: Python3.X バージョンでは、組み込みモジュールの名前が buildins に変更されており、Python2.X とは異なります

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!