パッケージとモジュールについてすでに学習している場合。
興味がありますか: 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 とは異なります