自作のモジュールをインポートする

ちょっとしたアプリケーションを作ろうとすると、いくつかの関数を定義したりします。それを全て一つの実行ファイルに書くのも良いですが、ファイルを分けたくなる場合もあります。ということで、関数を別のファイルに記述して、インポートしてみます。

目次

  1. 自作のモジュールを作る
  2. 自作モジュール全体をインポートする
  3. 自作モジュールの中の特定の関数をインポートする

自作のモジュールを作る

まずは、自作のモジュールとなるファイルです。

ここでは、myfunc.pyというファイル名にしました。 myfunc.pyの中には下記のような2つの関数が定義されています。

def testfunc1(text_string='no input'):
    print('testfunc1 : ' + text_string)

def testfunc2(text_string='no input'):
    print('testfunc2 : ' + text_string)

自作モジュール全体をインポートする

myfunc.pyをインポートして、その中に定義してある関数を使ってみます。

>>> import myfunc

>>> myfunc.testfunc1()
testfunc1 : no input

>>> myfunc.testfunc2()
testfunc2 : no input

自作モジュールの中の特定の関数をインポートする

ファイルの中の特定の関数をインポートしてみます。

まずは、ドットを使ってみました。(間違えたやり方)

>>> import myfunc.testfunc1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'myfunc.testfunc1'; 'myfunc' is not a package

myfuncはパッケージではないと怒られてしまいました。

from句を使ってインポートしてみます。

>>> from myfunc import testfunc2

>>> testfunc1()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'testfunc1' is not defined

>>> testfunc2()
testfunc2 : no input

testfunc2という関数だけをインポートできました。

広告

Pythonカテゴリの投稿