この記事では主にPython3でカスタムモジュールをインポートする3つの方法をサンプルコードを通して詳しく紹介していますので、皆さんの勉強や仕事に役立つ学習価値があります
前書き
私は最近学びました。 Liao Xuefeng のチュートリアルのモジュール セクション。モジュールのカスタマイズ方法について、理解できない場合は、まず基本的な概要を見てみましょう:
モジュール
コンピュータープログラムの開発プロセスでは、より多くのプログラムコードが記述されるにつれて、ファイル内 コードはますます長くなり、保守はますます容易ではなくなります。
保守しやすいコードを記述するために、多くの関数を異なるファイルにグループ化し、各ファイルに含まれるコードが比較的少なくなるように、多くのプログラミング言語はこのコード編成方法を使用しています。 Python では、.py ファイルはモジュールと呼ばれます。
モジュールを使用する利点は何ですか?
最大の利点は、コードの保守性が大幅に向上することです。次に、コードを書くときに最初から始める必要がありません。モジュールを作成すると、他の場所から参照できます。プログラムを作成するとき、Python の組み込みモジュールやサードパーティのモジュールなど、他のモジュールを参照することがよくあります。
モジュールを使用すると、関数名と変数名の競合を回避することもできます。同じ名前の関数と変数が異なるモジュールに存在する可能性があるため、自分でモジュールを作成する場合、名前が他のモジュールと競合することを考慮する必要はありません。ただし、組み込み関数名と競合しないように注意してください。 Python のすべての組み込み関数を表示するには、ここをクリックしてください。
また、別の人が書いたモジュール名が同じだったらどうなるか、と考えているかもしれません。モジュール名の競合を避けるために、Python では、パッケージと呼ばれるディレクトリごとにモジュールを編成する方法が導入されています。
たとえば、ファイル abc.py は abc という名前のモジュールであり、ファイル xyz.py は xyz という名前のモジュールです。
ここで、2 つのモジュール名 abc および xyz が他のモジュールと競合すると仮定します。そのため、競合を回避するためにパッケージを通じてモジュールを整理できます。この方法では、mycompany などのトップレベルのパッケージ名を選択し、それを次のディレクトリに保存します。最上位のパッケージ名が他のモジュールと競合しない限り、すべてのモジュールが他のモジュールと競合しません。ここで、abc.py のモジュール名は mycompany.abc になり、同様に、xyz.py のモジュール名は mycompany.xyz になります。
各パッケージ ディレクトリの下に __init__.py ファイルが存在する必要があることに注意してください。このファイルが存在しない場合、Python はこのディレクトリをパッケージではなく通常のディレクトリとして扱います。 __init__.py 自体はモジュールであり、そのモジュール名は mycompany であるため、__init__.py は空のファイルにすることも、Python コードを含めることもできます。
同様に、複数レベルのディレクトリを使用して複数レベルのパッケージ構造を形成することもできます。たとえば、次のディレクトリ構造は次のとおりです。
§─ web
│ §─ __init__.py│ §─ utils.py
│ └─ www.py§─ __init__.py
§─ abc.py └ ─ xyz .py
ファイル www.py のモジュール名は mycompany.web.www、2 つのファイル utils.py のモジュール名はそれぞれ mycompany.utils と mycompany.web.utils です。
独自のモジュールを作成するときは、名前に注意してください。Python に付属のモジュール名と競合しないようにしてください。たとえば、システムに sys モジュールが付属している場合、モジュールに sys.py という名前を付けることはできません。そうしないと、システムに付属の sys モジュールをインポートできません。
mycompany.web もモジュールです。このモジュールに対応する .py ファイルを指摘してください。
概要
モジュール名は Python 変数の命名規則に従っている必要があり、中国語や特殊文字を使用しないでください。 システム モジュール名と競合しないことが最善です。最初にこのモジュールが存在することを確認します。確認方法は、Python 対話環境で import abc を実行することです。成功した場合、このモジュールはシステムに存在します。
最初の方法は直接インポートすることですここで大前提があります。それは、以下に示すように、py実行ファイルとモジュールが同じディレクトリ(親ディレクトリ)に属しているということです。
main.py と pwcong モジュールは同じ Python ディレクトリにあります
実行ファイルは main.py です私は pwcong モジュールによって提供される関数を __init__.py に書きました。これは 1 つの hi 関数だけを提供します:
# pwcong 模块的 __init__.py # -*- coding: utf-8 -*- def hi(): print("hi")
ファイル main.py を実行してモジュールを直接インポートします:
# main.py # -*- coding: utf-8 -*- import pwcong pwcong.hi()
それから main.py を実行すると、コマンド ライン ウィンドウに「hi」という文が出力され、最初のメソッドが完了します。
モジュールの使用方法は次のとおりです: まず import -> 次に module.variable|function (上記の例の pwcong.hi() など) を入力します
次に、カスタム モジュールのパスをインポートしますsys モジュール
実行可能ファイルとモジュールが同じディレクトリにない場合、現時点では直接インポートではカスタム モジュールを見つけることができません。以下に示すように:
実行ファイルmain.pyはメインディレクトリにあります
pwcongモジュールはPythonディレクトリにあります
sysモジュールはPythonに組み込まれているので、次の手順を実行しますカスタム モジュールをインポートする手順は次のとおりです:
まず sys モジュールをインポートします
次に、sys.path.append(path)
関数を使用してカスタム モジュールが配置されているディレクトリをインポートします
カスタム モジュールをインポートします。
このとき、main.pyは次のように書かれています:
# main.py # -*- coding: utf-8 -*- import sys sys.path.append(r"C:\Users\Pwcong\Desktop\python") import pwcong pwcong.hi()
最後にmain.pyファイルを実行して、最後にhiを出力します。2番目の方法は完了です。
3 番目の方法は、pth ファイルを通じてカスタム モジュールを見つけることです
この方法の原理は、Python がシステム変数のパスをスキャンして、モジュールに追加できるモジュールをインポートすることです。システムパス。ただし、それでも pth ファイルの追加を使用することをお勧めします。
モジュールと実行可能ファイルのディレクトリ構造は図と同じです:
実行可能ファイルmain.pyはメインディレクトリにあります
pwcongモジュールはPythonディレクトリにあります
module_pwcong.pth ファイルを作成します。内部のコンテンツは、pwcong モジュールが配置されているディレクトリです:
C:UsersPwcongDesktoppython
ここに module_pwcong.pth ファイルを置きます:
Python インストール ディレクトリ Python35Libsite-packages
例、私のもの:
次に、main.py がカスタム モジュールをインポートして使用します:
# -*- coding: utf-8 -*- import pwcong pwcong.hi()
最後に main.py ファイルを実行すると、出力できます。こんにちは、3 番目の方法が完了しました。
以上がPython3でカスタムモジュールをインポートする3つの方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。