importって、なぜ、必要なんだろう!と疑問が湧いたので、調べて整理しました。
今まで深く考えずに、サンプルソースを基に作っていたのが恥ずかしい。。。
用語 | 内容 | import宣言 |
組み込み関数 | インストールした時から自由に使える関数 https://docs.python.org/ja/3/library/functions.html abs()とかlist()とか |
(不要) |
標準モジュール (標準ライブラリ) |
システム機能へのアクセス機能を提供する (Cで書かれた) 組み込みモジュールや、日々のプログラミングで生じる多くの問題に標準的な解決策を提供するPython で書かれたモジュール https://docs.python.org/ja/3/library/index.html データの型とか、ファイル操作の関数 |
必要 |
外部モジュール | サードパーティのモジュール https://pypi.org/ |
必要 |
自作モジュール | 自分で作成したモジュール | 必要 |
パッケージ | モジュールを集めたもの。__init__.pyが必要 | 必要 |
いろいろなimport宣言
宣言 | 用途 |
import A | モジュールAに入っている関数を利用したい(モジュールの全体を利用したい) (例)openpyxlモジュールに入っているload_workbook()関数を使用したい + import openpyxl wb = openpyxl.load_workbook(‘target.xlsx’) |
import A as ABC | モジュールAに入っている関数を利用したい+利用時にはABC.xxx()と、別名を使って利用したい (例)openpyxlモジュールに入っているload_workbook()関数を使用したい +openryxlを短く書きたい import openpyxl as ox wb = ox.load_workbook(‘target.xlsx’) |
from A import aaa | モジュールAに入っているaaa()関数を利用したい + パッケージを省略したい (例)openpyxlモジュールに入っているload_workbook()関数を使用したい +openryxlを省略したい from openpyxl import load_workbook wb = load_workbook(‘target.xlsx’) ※コード量を省略できるが、パッケージが分かりにくいので、可読性が落ちると思う。 |
fromの利用パターン
パターン | 個人的見解 |
from openpyxl.styles.fonts import Font Font(color=’FF00FF’) |
コード量は減るが、Font()がどのパッケージにあるのか分かりにくい |
from openpyxl.styles import fonts fonts.Font(color=’FF00FF’) |
省略の効果も薄く、Font()、もどのパッケージのあるのか中途半端に分かりにくい |
from openpyxl import styles styles.fonts.Font(color=’FF00FF’) |
このあたりがベストのような気もするが、省略の効果も薄い |
fromの用途は、いまひとつ掴めていない。。。