Pythonで別のファイルのコードを呼び出すコードを紹介します。
Pythonでプログラムの規模が大きくなってくると1つのコードファイルではコードが長すぎて可読性が落ちます。コードを見やすくすることや、処理をわかりやすくまとめるためにコードを別のPythonのファイルに記述したいことがあります。
別のファイルのコードを実行する場合は、import キーワードを利用します。
print('Start Main')
import ImportDemoSub
print('End Main')
print('Start Sub')
print('End Sub')
プログラムを実行するとメインのコードファイルから実行されます。最初に 'Start Main' のメッセージを画面に表示します。続いて import
文が実行され、ImportDemoSub.py ファイルが実行されます。ImportDemoSub.py ファイルでは 'Start Sub' 'End Sub' のメッセージを画面に表示します。ImportDemoSub.pyファイルの処理が終わると、元のファイル(ImportDemo.py)の import文の次の行から実行が再開され、'End Main' メッセージを画面に表示します。
上記のプログラムを実行します。下図の画面が表示されます。別のPythonのコードが実行できていることが確認できます。
呼び出し先のPythonのコードが関数が定義されている場合の呼び出しコードを紹介します。
import ImportFunctionDemoSub
print('Start Main')
print('1つめの数値を入力してください')
valuea = int(input())
print('2つめの数値を入力してください')
valueb = int(input())
reta = ImportFunctionDemoSub.proc1(valuea, valueb)
retb = ImportFunctionDemoSub.proc2(valuea, valueb)
print('(proc1, proc2)=({0}, {1})'.format(reta, retb))
def proc1(a, b):
return a+b
def proc2(a,b):
return a-b
呼ばれる側が関数のみで記述されているため、最初の行に import
文を記述します。
プログラムを実行するとメインのコードファイルから実行されます。最初に 'Start Main' のメッセージを画面に表示します。続いて printとinputが実行され1つ目の値の入力を受け付けます。その後2つ目の値の入力を受け付けます。2つの値の入力が終わると、ImportFunctionDemoSub.py の proc1 と proc2 の関数を呼び出し戻り値を取得します。
最後にprint文で proc1 と proc2 の戻り値の値を画面に表示して終了します。
上記のプログラムを実行します。下図の画面が表示されます。
1つ目の数値を入力します。
1つ目の数値を入力すると下図の画面が表示されます。2つ目の数値を入力します。
proc1, proc2 が呼び出されて入力した2つの数値の和と差が画面に表示されます。別ファイルにある関数が呼び出されていることが確認できます。
クラスを利用してコードを分割する方法もあります。クラスの記述についてはこちらの記事を参照して下さい。