【python】ファイル分割とモジュール化する方法(かんたん、実例)

Python-prograshi(プロぐらし)-kv Python
記事内に広告が含まれていることがあります。
[PR]

モジュールというと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 モジュール名
・使用:モジュール名.関数名()



モジュール化(ファイルを分割)したことで、大元のファイルがシンプルになる。

タイトルとURLをコピーしました