Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでの絶対および相対インポート


多くの場合、Pythonコードを作成すると、別のPythonファイルまたはパッケージからコードにアクセスする必要があることがわかります。これは、他のPythonファイルまたはパッケージを現在のコードにインポートする必要がある場合です。したがって、これを実現する簡単な方法は、現在のPythonプログラムの上部に次のステートメントを記述しただけです。

import package_name or module_name
or
from pacakge_name import module_name/object_name

上記のステートメントが解析されると、インタプリタは次のことを行います。

  • インタプリタは、以前にインポートされたすべてのモジュールのキャッシュで名前を探します。 sys.modules内のこのキャッシュモジュールの名前。

  • 上記の手順で見つからない場合、インタプリタは組み込みモジュールのリストでそれを検索します。これらのモジュールはPython標準ライブラリの一部です。

  • 上記の手順2でまだ見つからない場合、インタプリタは、現在のディレクトリを最初に検索するディレクトリとして、sys.pathで定義されたディレクトリのリストでパッケージまたはモジュール名を検索します。

    >
  • 上記のいずれかの手順でインポートされたモジュールであることが判明すると、パッケージまたはモジュールの名前が現在のプログラムのローカルスコープにバインドされます。

  • パッケージまたはモジュールが見つからない場合は、ModuleNotFoundErrorが発生します。

インポートに関するいくつかのルール。

インポートステートメントは、それらのステートメントを使用してファイルの先頭に記載する必要があります。インポートを記載する順序は次のとおりです。

  • Pythonの標準ライブラリモジュール

  • サードパーティのモジュールからインポート

  • ローカルアプリケーションからインポート

絶対インポート

このタイプのインポートでは、インポートするパッケージ/モジュール/関数のフルパスを指定します。ディレクトリ構造には、スラッシュ(/)のペースでドット(。)が使用されます。

パッケージの次のディレクトリ構造を検討してください。

python_project_name/packageA/moduleA1.py
python_project_name/packageA/moduleA2.py

また、moduleA2にmyfuncという関数名があると仮定しましょう。その関数を現在のPythonプログラムにインポートする場合は、絶対パスを使用して次のインポートステートメントを記述します。

from packageA.moduleA2 import myfunc

絶対インポートの大きな利点は、インポートがどこで行われているのかを明確に示している一方で、かなり長くなる場合があることです。

相対インポート

相対インポートでは、インポートされたモジュールを使用している現在のスクリプトの場所を基準にした、インポートされたパッケージのパスについて言及します。

ドットは現在の場所から1つ上のディレクトリを示し、2つのドットは2つのディレクトリを上に示します。

パッケージの次のディレクトリ構造を検討してください。

python_project_name/packageA/moduleA1.py
python_project_name/packageB/moduleB1.py

上記のパッケージ構造のmoduleB1がmoduleA1をインポートする必要があると仮定しましょう。次に、インポートステートメントは次のとおりです。

from ..packageA import moduleA1

2つの点は、moduleB1の場所から、ディレクトリpython_project_nameに移動してから、packageAに移動してmoduleA1を取得する必要があることを示しています。

この種のインポートは短く、インポートステートメントのパスを簡単に変更することなく、トップレベルのプロジェクトをある場所から別の場所に移動できます。欠点として、インポートフォルダが共有されている場合、パスに変更が加えられると、コードが影響を受けやすくなります。


  1. CSSの絶対単位と相対単位

    CSS絶対単位と相対単位はどちらも、距離単位のカテゴリに分類されます。 CSS相対単位は、別の要素を参照する要素の長さを定義します。 たとえば、 vh 相対単位はビューポートの高さを基準にしています。 以下はCSSの相対単位です- Sr.No 単位と相対値 1 % 親要素の寸法 2 em 要素のフォントサイズ 3 例 要素のフォントのエックスハイト 4 lh 要素の線の高さ 5 rem ルート要素のフォントサイズ 6 rlh ルート要素の線の高さ 7

  2. PythonでMatplotlibをインポートする方法は?

    まず、 pythonがあることを確認してください およびpip システムにプレインストールされています。 Pythonのバージョンを確認するには、次のように入力します python --version pipのバージョンを確認するには、次のように入力します pip −V 次に、次の pipを実行します コマンドプロンプトでコマンドを実行して、Matplotlibをインストールします。 pip install matplotlib matplotlibがシステムに正常にインストールされていることを確認するには、コマンドプロンプトで次のコマンドを実行します。 import mat