【Python】importの仕方
投稿日 :
Tags:
Python
前提
Python: 3.12
1. importの基本
まずは、importの基本的な使い方について確認しよう。
Pythonでは、以下のように記述することでモジュールをインポートできる。
import モジュール名
例えば、数学関数を提供するmath
モジュールをインポートしたい場合は、以下のように記述する。
import math
インポートしたモジュール内の関数などは、「モジュール名.関数名」のようにしてアクセスできる。
import math
result = math.sqrt(16) # mathモジュールのsqrt関数を使う
print(result) # 4.0
2. fromを使ったインポート
モジュール内の特定の関数やクラスだけをインポートしたい場合は、「from」キーワードを使う。
from モジュール名 import 関数名, クラス名, ...
例えば、math
モジュールからsqrt
関数だけをインポートしたい場合は、以下のように記述する。
from math import sqrt
result = sqrt(16) # モジュール名を省略できる
print(result) # 4.0
3. 相対インポートと絶対インポート
複数のモジュールを組み合わせてプログラムを作成する場合、モジュール間のインポートが必要になる。
Pythonには、相対インポートと絶対インポートという2種類のインポート方法がある。
- 絶対インポートは、モジュールのフルパスを使ってインポートする方法。
- 相対インポートは、現在のモジュールからの相対パスを使ってインポートする方法。
プロジェクトの規模が大きくなると、相対インポートは混乱を招きやすい。そのため、基本的には絶対インポートを使うことが推奨される。
4. 循環インポートとその解決策
2つのモジュールがお互いをインポートし合うことを循環インポートと呼ぶ。循環インポートは、プログラムの動作を不安定にする可能性があるため、可能な限り避けるべきだ。
循環インポートを解決するには、以下の方法が考えられる。
- インポートする順番を変更する
- モジュールの設計を見直す
関連記事
-
【Python】pipの使い方前提 Python: 3.12 pipとは? Pythonパッケージ管理の強い味方 pipは、Package Installer for Pythonの略称であり、Pythonのパッケージをイン
-
【Jinja2】for文の中で使えるloopについて前提 Python: 3.12 Jinja2: 3.1.3 参考 List of Control Structures — Template Designer Documentation — Jinja Documentation (3.1.x) Jinja2のloop変数とは Jinja2のloop変数は、for文などのループ処理内で自動的に生成
-
【Python】文字列メソッドの使い方前提 Python: 3.12 参考 文字列メソッド — 組み込み型 — Python 3.12.3 ドキュメント Pythonの文字列メソッド Pythonを使いこなす上で、文字列処理は避けて通れない
-
【Python】Pythonのurllibの使い方前提 Python: 3.12 参考 urllib.request — Extensible library for opening URLs — Python 3.12.3 ドキュメント urllibとは? - Python標準のWeb通信ライブラリ urllibは、URL (Uniform Resource Locator) を扱うため
-
【Python】PythonのPathlibの使い方前提 Python: 3.12 基本 from pathlib import Path # カレントディレクトリからの相対パス file_path = Path("my_folder/my_file.txt") # ファイルが存在するか確認 if file_path.exists(): print("ファイルは存在します