Pythonで長いコードを書いていると、エラーが起きた時にどの文が原因でエラーが起きているのかを特定するのが大変になることがあります。しかし、Pythonにはコードを分割しても読んでくれる仕組みがあります。
モジュールとは?
Pythonのコードを書くとき、基本的には.pyファイルで保存して作っています。.pyファイルを「モジュール」とPythonでは呼んでいます。
モジュールの作り方
- 移動したい関数を別ファイル (.py)にカット&ペースト
- 元のファイルで呼び出すimport ファイル名
- モジュールの使用モジュール名.関数名 ()
この ①で作ったファイルがモジュールで、ファイル名 (.py除く)がモジュール名になります。
モジュールの呼び出し方
モジュールの関数を呼び出すには以下のようにします。
- 最初の1行目にimport [モジュール名]※.pyは除いておく!
- モジュールの名前.関数の名前 ([引数])
これで、コードの分割が可能です。
モジュール化の例
例えば、以下のようなコードがあったとします。
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
これをモジュール化すると以下のようになります。
# hello.py
def konchiwa (name):
print (f' {name}さん こんちわ! ')
# dog.py
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
そして、これらのモジュールを読み込むには以下のようにします。
# main.py
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 ('正しい年齢を入力してください')
以上がPythonでコードを分割し、モジュール化する方法です。この方法を使うと、コードが見やすくなり、エラーの原因を特定しやすくなります。