読み込みファイルが関数で記述されていない場合は
インポートした時点でそのファイル内容が実行される。
関数が記述されている場合、importしたファイルに記述されている関数が実行ファイル内に入るイメージで、実行される。
つまり、
main.py
import test
print('main.py')
test.test()
test .py
print('関数外')
def test_b():
print('テスト')
main.pyを実行した結果は、以下となる。
関数外
main.py
テスト
また、関数以外も記述しているファイルでimport時に実行せず関数だけを取り出したい場合は、
import対象のファイルで関数に囲まれていない処理を
if name == "main":の下に記述するよう書き換えると実行されない。
他にも
asを使うとモジュールや関数などに別名をつけられる。
from math import pi as PI
モジュールの種類によって以下の順番でグループ分けしてインポートするのが推奨されている。
グループ間は空白行で区切る。
標準ライブラリ
サードパーティライブラリ(NumPyなど)
ローカルライブラリ(自作のライブラリ)
fromを使って一部の関数や変数、クラスなどを複数指定してインポートする場合は、カンマで区切ることも可能である。
from <モジュール名> import <識別子名>
例えば、
from math import pi, radians
importでよく起こるエラーとしては、ValueErrorがある。
関数の引数に間違った型を渡した場合に起きるエラー。
例、数値データ(int 型や float 型)を引数に取るものに対して関数が処理できない値を渡した場合に発生する。