Python

Pythonコードから別のPythonコードを参照するには?

k.w
\お買い物マラソン開催中/

Pythonでコードを記述していると、汎用的に使えそうなコードを作成することがあると思います。
その場合、毎回、同じコードを別のPythonコードに記述しては無駄ですし、何より編集したい場合、記述したコードの数だけ修正しなければなりません。
その手間の対応を説明します!

Pythonで別のPythonコードを参照する方法はいくつかあります。主に次のような方法が考えられます。

インポートステートメント

Pythonファイル(モジュール)をインポートすることで、そのファイルに定義されている関数やクラスを使用できます。
例えば、module.py というファイルにある関数を main.py で使用したい場合、main.py で以下のように記述します。

1import module 
2module.function_name()

パッケージの利用

複数のモジュールをディレクトリにまとめてパッケージとして扱うことができます。
パッケージ内のモジュールを使うには、そのパッケージをインポートして、必要なモジュールを指定します。
例えば、mypackage というディレクトリに module.py がある場合。

1from mypackage import module
2module.function_name()

相対インポート

パッケージ内のモジュール間で相互にインポートする場合、相対インポートを使うことができます。
同じ階層にあるモジュールをインポートする場合は、以下のように記述します。

1from .module import function_name

パスを通す

Pythonの検索パスにディレクトリを追加することで、そのディレクトリ内のモジュールを自由にインポートできるようになります。
sys.path にディレクトリのパスを追加することで実現できます。

1import sys sys.path.append('/path/to/directory')
2import module

ファイルパスが一つ上の階層の場合は、以下となります。

1import sys
2import os
3
4# カレントディレクトリの親ディレクトリのパスを取得
5parent_dir = os.path.dirname(os.getcwd())
6# sys.path に親ディレクトリを追加
7sys.path.append(parent_dir)
8
9# 親ディレクトリにある module.py をインポート
10import module

これらの方法を使って、Pythonのコード間で機能を共有したり、モジュールを再利用したりすることができます。

どの方法を選ぶかは、コード全体の記述形態に依存しますが、パターンを覚えておくことで使いこなしてください!

ABOUT ME
記事URLをコピーしました