ホームページ > バックエンド開発 > Python チュートリアル > Python で「import *」は実際にどのように機能するのでしょうか?

Python で「import *」は実際にどのように機能するのでしょうか?

DDD
リリース: 2024-11-16 14:45:03
オリジナル
825 人が閲覧しました

How Does

「import *」の謎を解く

「import *」は何をインポートしますか?

Python では、「import *" は、指定されたモジュールのすべてを現在のモジュールにインポートします。これにより、モジュール名を接頭辞として付けることなく、インポートされたオブジェクトに直接アクセスできるようになります。

例:

>>> from math import *
>>> pi
3.141592653589793
>>> sin(pi/2)
1.0
ログイン後にコピー

名前衝突の Web に巻き込まれました

ただし、「*」を使用して「すべて」をインポートすることは、既存の変数や変数と名前空間の衝突が発生する可能性があるため、推奨されません。機能。さらに、大量のオブジェクトがインポートされる場合、非効率になる可能性があります。

明示的なインポートと "*" を使用したインポート

必要なオブジェクト:

>>> from math import pi
>>> pi
3.141592653589793
>>> sin(pi/2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sin' is not defined
ログイン後にコピー

または、モジュールを独自の名前空間の下にインポートすることもできます。エイリアス:

>>> import math
>>> math.pi
3.141592653589793
>>> import math as m
>>> m.pi
3.141592653589793
ログイン後にコピー

「* Import」の例外

場合によっては、すべてを「」でインポートすることが適切な場合があります。たとえば、一部のライブラリは、「」でインポートするように特別に設計されたサブモジュールを提供しており、一般的に使用される定数と関数が含まれています。

「* インポート」メカニズムの詳細

「import *」を使用すると、次のオブジェクトがインポートされます:

  • にリストされているすべての名前モジュールの "__all__" 変数 (定義されている場合)。
  • "__all__" 変数が定義されていない限り、アンダースコア ("_") で始まるものを除くすべての名前。

サブモジュールの微妙さ

一般的な認識に反して、「from xyz import」 " はサブモジュールをインポートしません。サブモジュールは明示的に個別にインポートする必要があります。 "from urllib.request import ".

以上がPython で「import *」は実際にどのように機能するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート