1. 概要
長年PHPを使用してきた私には、Pythonではパッケージのimportに毎回悩まされます。
なので、importの方法とコールの方法をまとめました。
2. 原則
- importできるのはパッケージ、モジュール、クラス、関数、変数 (メソッドはimportできない)
- importした名前でコールする ⇒ "import" の右側に書いた名前がコールする時の修飾子になる
3. 例
1. 関数 os.path.join()を使いたい場合
os.pathパッケージはposixpath.py (Windowsの場合はngpath.py) に関数群が定義されている
import os
# 修飾子はos、path.joinがコールする関数名
path = os.path.join("/", "var", "opt")
import os.path
# os.pathが修飾子、joinがコールする関数名
path = os.path.join("/", "var", "opt")
import os.path.join
# これはimportできない!!
# パッケージ名・モジュール名 + クラス名・関数名・変数名の形式ではimportできない!?
from os import path
# pathが修飾子、joinがコールする関数名
path = path.join("/", "var", "opt")
from os.path import join
# join関数をimportしているので、修飾子はなし、joinがコールする関数名
path = join("/", "var", "opt")
2. メソッドdatetime.datetime.today()を使いたい場合
datetimeパッケージはdatetime.pyにクラス群が定義されている
import datetime
# 修飾子はdatetime、datetime.today()がコールするメソッド名
print(datetime.datetime.today())
import datetime.datetime
# これはimportできない!!
# パッケージ名・モジュール名 + クラス名・関数名・変数名の形式ではimportできない!?
from datetime import datetime
# 修飾子はdatetime、datetime.today()がコールするメソッド名
print(datetime.today())
4. まとめ
import MODULE
from PACKAGE import MODULE
from PACKAGE.MODULE import CLASS(FUNC or VARIABLE)