next up previous
Next: リスト, 文字列の連結とスライス Up: プログラミング入門 Previous: 関数

   
モジュール

よく利用する関数をファイルに書いておいて, それを利用することが出来る. 例えば, いろいろなデータの平均, 最大, 最小を計算したいときには, これらの 量を計算する関数をひとつのファイルに書いて [*], それを利用すると便利である. このように関数を定義するファイルを モジュールと呼ぶ.

モジュールのファイル名は, 「.py」で終らなくてはならない. ここでは, mean1.py という名前のファイルを作成しよう. その内容は以下の通りである:

# mean1.py
# 平均, 最大, 最小を計算する.
def mean(list): # 平均を求める
    sum = 0
    for i in list:
        sum = sum + i
    return float(sum) / len(list)

def max1(list): # 最大を求める
    a = list[0]
    for i in list:
        if i > a:
            a = i
    return a

def min1(list): # 最小を求める
    a = list[0]
    for i in list:
        if i < a:
            a = i
    return a

def prn_res(list): # 全てを印字する
    print '平均', mean(list)
    print '最大', max1(list)
    print '最小', min1(list)
最初の 2 行はコメントである. 関数 mean() においては, 数値を 浮動小数点型に変換する関数 float() を用いている. また, 関数 prn_res() では, 他の関数 mean(), max1(), min1() を呼び出している. このように, 関数の中で他の関数を(何重にでも)呼び出してよい.

このモジュールを import することによって, ここで定義された関数を, Python の対話モードやスクリプトで利用することが出来る. 対話モード で利用した例を以下にあげよう:

>>> import mean1
>>> a = [1, 2, 3, 4, 5]
>>> mean1.prn_res(a)
平均 3.0
最大 5
最小 1
>>> b = [10, 25, 30]
>>> mean1.mean(b)
21.6666666667
import する際には, ファイル名から「.py」を除いた名前を用いる. このように import した場合は, 関数名の前にモジュール名とピリオド をつけなくてはならない.

モジュールにデータを記述することも出来る. mdata.py というファイルを 以下のようにしてみよう:

# データファイル
a = [1, 2, 3, 4, 5]
b = [-1, 2, 10, -20]
これらを import して, 計算を行った例を挙げよう:
>>> import mean1
>>> import mdata
>>> mean1.prn_res(mdata.a)
平均 3.0
最大 5
最小 1
>>> mean1.max1(mdata.b)
10
上の例は, mdata で定義された a や b というリスト mdata.a, mdata.b に対して計算を行っている. この場合も import したモジュール名 mdata とピリオドをリストの名前 a, b の前につけなくてはならない ことに注意しよう.



Toru Sasaki
2000-08-30