モジュールというとnumpy, datetime, pandasなど処理内容が複雑なイメージを持っている人が少なくありませんが、実はかなり簡単に作れることができます。
ここでは、pythonでモジュールを作成する方法についてまとめています。
ファイル分割
複数の関数が書かれたファイル(.py)を別ファイルに分割し呼び出す。
①移動したい関数を別ファイル(.py)にカット&ペースト
②元のファイルで呼び出すimport ファイル名
└ ※ファイル名は拡張子不要
└ ( )や(‘ ‘)は不要。メソッドではない
③モジュールの使用モジュール名.関数名()
└ 関数名の前にモジュール名をつける
└ 拡張子(.py)は不要
この①で作ったファイルがモジュール。ファイル名(.py除く)がモジュール名になる。たったこれだけ。 気になったこと コピー&ペーストがコピなら、カット&ペーストはカッペで通じるのか?(全然関係ないし、聞いたことない)
モジュール化実例
1.モジュール化前のファイル
例として、モジュール化前のファイルに下記関数を定義。
①挨拶をする関数 konchiwa
②ドッグイヤーを求める関数 birthdayDog
この2つの関数を別ファイルに移し、モジュールとして読み込む。
def konchiwa(name):
print(f'{name}さん こんちわ!')
def birthdayDog(name, age="24"):
print(f'{name}さん、{age}歳のお誕生日おめでとうございます。')
dogyear = age*7
print(f'{name}さんのdogyearは{dogyear}歳です')
def validate(age):
if age<10:
return False
return True
print('挨拶して、ドッグイヤーを求めるプログラムです。')
name = input('お名前を教えてください:')
print('---------------------------')
konchiwa(name)
age = int(input('\n年齢を教えてください:'))
if validate(age):
birthdayDog(name, age)
else:
print('正しい年齢を入力してください')
2.ファイル分割(モジュール化)
▼挨拶をする関数を分割
def konchiwa(name):
print(f'{name}さん こんちわ!')
▼ドッグイヤーを求める関数を分割
def birthdayDog(name, age="24"):
print(f'{name}さん、{age}歳のお誕生日おめでとうございます。')
dogyear = age*7
print(f'{name}さんのdogyearは{dogyear}歳です')
def validate(age):
if age<10:
return False
return True
3.モジュールの読み込み
#作ったモジュールを読み込む
import hello
import dog
print('挨拶して、ドッグイヤーを求めるプログラムです。')
name = input('お名前を教えてください:')
print('---------------------------')
hello.konchiwa(name)
age = int(input('\n年齢を教えてください:'))
if dog.validate(age):
dog.birthdayDog(name, age)
else:
print('正しい年齢を入力してください')
・読み込み:import モジュール名
・使用:モジュール名.関数名()
モジュール化(ファイルを分割)したことで、大元のファイルがシンプルになる。