pythonのfrom importの意味 asの使い方は?

PythonのImport

Pythonのimportの使い方

Pythonのimportの使い方

Pythonのimportの構文

import文は、指定したモジュールを読み込むための命令。構文は以下の通り。

import_stmt ::= "import" module ["as" identifier] ("," module ["as" identifier])*
| "from" relative_module "import" identifier ["as" identifier]
("," identifier ["as" identifier])*
| "from" relative_module "import" "(" identifier ["as" identifier]
("," identifier ["as" identifier])* [","] ")"
| "from" relative_module "import" "*"
module ::= (identifier ".")* identifier
relative_module ::= "."* module | "."+

関連)7. 単純文 (simple statement) — Python 3.10.4 ドキュメント

実際に組み合わせて良く使われるのはfromとasです。

なお、存在しないモジュールを呼び出そうとすると、No module named…というエラーが出力されます。以下は、モジュールxyzをimportしようとしてエラーになった例です。

>>> import xyz
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'xyz'

関連 pythonのライブラリ一覧を取得

Pythonのimportのfromの意味

from指定で、対象モジュールの中の特定のサブモジュールや関数だけをimportできます。

必要な部分だけimportすることでメモリの節約をする…というメリットはあまりありません。現在は、パソコンでさえ大容量メモリを積んでいることが多いからです。

どちらかというと、必要機能を呼び出すために、記述を短くしたいという目的で使われることが多いようです。

例えば、abcというモジュールがあって、その下位にdef、さらに下位にghi、その下にxxxという関数が存在する場合。最上位のabcモジュールだけをimportする場合は、以下のような記述になります。

import abc

sts = abc.def.ghi.xxx(0,0)

以下のように、abc.def.ghiモジュールだけをインポートすれば、関数の呼び出しの記述を短くできるんですね。

from abc.def import ghi

sts = xxx(0,0)

Pythonのimportのasの意味

importのasを指定すると、モジュール名に別名をつけることができます。モジュール名が長い場合に、コードをシンプルにしたいなーというときに使うんですね。

import numpy as np
a = np.array([0,1,2])
print(a)

上記は、numpyというモジュール名をas指定でnpと別名をつけた例です。

コード内にnumpyというモジュール名が出まくる場合は、asを使うことでいっきに見やすくなります。

Pythonのimportで自作モジュールを読み込む

Pythonで自作モジュールをImport

Pythonで自作モジュールをインポートするサンプルコード

自作のクラス定義や関数定義をおこなった.pyファイルをimportすることが可能です。

例えば、自作関数を定義したaaa.pyを用意します。

$ cat aaa.py
def mytest( a ):
print ( a )

カレントディレクトリにaaa.pyを配置して、以下のようにimportします。ファイル名から.pyを除いた文字列を指定すればOKです。

>>> import aaa
>>> aaa.mytest("xxx")
xxx

importで探索するパスは、sys.pathで確認できます。パスの最初の”はカレントディレクトリを表しています。

>>> import sys
>>> sys.path
['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']

Pythonのimportのまとめ

まとめ

  • importはPythonのモジュールを読み込む命令
  • from指定でモジュールの階層を、as指定でモジュールに別名をつけることができる
  • 自作モジュールをimportする場合は、sys.pathのパスに.pyファイルを配置する