Pythonで別ファイルの関数を実行する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonで別ファイルの関数を実行する方法について現役エンジニアが解説しています。別のファイルの関数を実行するにはimportキーワードを使用します。標準・拡張・自作のPythonファイルに対応しています。さらにfromキーワードを使うと階層下のファイルを呼び出すことも出来ます。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Pythonで別ファイルの関数を実行する方法について解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonで別ファイルの関数を実行する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

他ファイルの関数をimportで呼び出す

Pythonで別のファイルの関数を実行するにはimportキーワードを使用します。

importキーワードは以下に使用できます。

  • 標準モジュール(標準ライブラリ):Python と同時にインストールされるモジュール。インターネット処理を扱う http や、数学関数の math など、多くの種類があります。
  • 拡張モジュール(拡張ライブラリ):必要に応じてインストールして利用するモジュール。数値計算や行列を扱う NumPy、グラフ描画の matplotlib など、用途に応じて多くの種類があります。
  • 自作のPythonファイル:ユーザーが自分で作成した関数。共通的な関数を別のファイルに保存しておいて、ライブラリと同じように読み込んで利用することができます。拡張子はpyとします。

例えば、同じフォルダのcircle.pyというファイルの中にある関数をimportで呼び出す場合には以下のように記述します。

circle.py
 

# 円の面積を求める関数
def calc_area(r):
 return r ** 2 * 3.14

 
circleの中にあるcalc_area関数を呼び出す。
 

import circle

# 半径3の円の面積
area = circle.calc_area(3)
print(area)

 
実行結果は以下のようになります。
 

28.26

 
または以下のようにfromキーワードでファイル名を指定しての記述も可能です。

この場合、関数を呼び出す際に「circle.」は不要となります。
 

from circle import calc_area

# 半径3の円の面積
area = calc_area(3)
print(area)

 

ディレクトリの階層が違う場合

それでは、ディレクトリの階層が違う場合にはどうしたら良いでしょうか。
ディレクトリの階層が違う場合にはfromキーワードとimportキーワードを併せて使用します。

以下は、mylibディレクトリの中にあるsquare.pyというファイルを読み込む例です。
 

from mylib import square

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に別ファイルの関数を実行してみる

実際に、mylibディレクトリの中にあるsquare.pyというファイルの中の関数calc_areaを実行してみましょう。
 

from mylib import square

# 幅5、高さ3の四角形の面積
area = square.calc_area(5, 3)
print(area)

 
実行結果は以下のようになります。
 

15

 
こちらも、fromキーワードでファイル名まで指定して以下のように記述することも可能です。
 

from mylib.square import calc_area

# 幅5、高さ3の四角形の面積
area = calc_area(5, 3)
print(area)

 
実行結果は以下のようになります。
 

15

 

監修してくれたメンター

太田和樹(おおたかずき)

ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント。

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。