3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Python入門 モジュール

Last updated at Posted at 2019-06-07

モジュール

モジュールとは、関数やクラス定義を一つのファイルにまとめたものです。

モジュールの使い方

例えば、次のように二つの関数が書かれたファイルを作成して、ファイル名をcalculation.py とします。

calculation.py
def linear(x):
    for i in range(10):
        y = 2*x
        print(y)
        x += 1
        i += 1

def squared(x):
    for i in range(10):
        y = x**2
        print(y)
        x += 1
        i += 1

先ほど書いたモジュールを使用するときは、import ファイル名 という感じで、他のコードから参照することができます。

import calculation

インポートしたモジュールは、ファイル名.定義(引数) というように書くと参照したコード内で実行することができます。

calculation.linear(1)
実行結果
2
4
6
8
10
12
14
16
18
20

一度インポートしたら、別の定義も使用することができます。

calculation.squared(1)
実行結果
1
4
9
16
25
36
49
64
81
100

モジュール内で定義されている名前の取り込み

from モジュール名 import 定義1,定義2,… というように書くと、モジュールを使用するときは定義名だけで実行することができるようになります。

from calculation import linear, squared

この場合は、linear(引数) という定義を別のコード内で実行しています。

linear(2)
実行結果
4
6
8
10
12
14
16
18
20
22

squared(引数) も先ほど読み込んでいたので使用することができます。

squared(2)
実行結果
4
9
16
25
36
49
64
81
100
121

モジュール内で定義されている名前を全て取り込み

先ほどと同じ書き方で* を書くと、モジュール内にあるすべての定義名を使用することができるようになります。

from calculation import *
squared(5)
実行結果
25
36
49
64
81
100
121
144
169
196

モジュール名を変更

インポートしたモジュール名はimport モジュール as モジュール名 という書き方でコード内で使用する際のモジュール名を変更することができます。長いモジュール名の場合、短くしておくとコードを書きやすくすることができます。

import calculation as cal
cal.squared(10)
実行結果
100
121
144
169
196
225
256
289
324
361

スプリクトとしての利用方法

スクリプトとは、コマンドライン上で、モジュールを実行させることを言います。基本的には、先ほど書いたモジュールに以下のように、if __name__ == '__main__':と、実行したい関数を記述することでスクリプトとして使用することができます。

calculation02.py
def linear(x):
    for i in range(10):
        y = 2*x
        print(y)
        x += 1
        i += 1

def squared(x):
    for i in range(10):
        y = x**2
        print(y)
        x += 1
        i += 1

if __name__ == '__main__':
    import sys
    linear(int(sys.argv[1]))

スクリプトを使用するときは、コマンドラインで、python スクリプト 引数で実行することができます。

python calculation02.py 10
実行結果
20
22
24
26
28
30
32
34
36
38

モジュール検索パスの確認

pprintを使用すると、インポートしたモジュールがどの位置(パス)にあるかを調べることができます。

import calculation
import pprint

pprint.pprint(calculation)
実行結果
<module 'calculation' from '/Users/ユーザー名/jupyter/calculation.py'>

dir()関数

dir()は、インポートしたモジュールにどんな名前の定義があるかを調べることができます。

import calculation
dir(calculation)
実行結果
['__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 'linear',
 'squared']

パッケージ

パッケージとは、複数のモジュールを参照できるようにしたフォルダのことです。パッケージは以下のように__init__.pyを含んだフォルダになっていて、複数のモジュールを入れておくことで、パッケージとして参照することができます。

calculation_package
├── __init__.py
├── __pycache__
│   ├── __init__.cpython-36.pyc
│   └── calculation.cpython-36.pyc
└── calculation.py

パッケージを使用するときは、from パッケージ名 import モジュール名で使用することができます。

from calculation_package import calculation
実行結果
calculation.linear(1)
3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?