Python モジュール - module
Publish date: 2021-03-07
Last updated: 2021-03-07
Last updated: 2021-03-07
Pythonには、関数やクラスを別ファイルに定義しておいて、 それを読み込んで使えるようにする仕組み(モジュール)があります。
モジュールの定義と使い方
キーワードimport
の後にモジュールの名称(ファイル名の.py
を除いた部分)を指定することで
別ファイルの内容を読み込んで使うことができる。
# sample_module.py
def add(a, b):
return a + b
class SampleClass:
def __init__(self, name):
self.name = name
def say(self):
print(self.name)
import sample_module
sample_module.add(1, 2) # => 3
sc = sample_module.SampleClass("taro")
sc.say() #=> taro
fromとimportを使ったモジュールの読み込み
from モジュール名 import クラスや関数名
とすることで、
クラスや関数名で直接呼び出せるようになる。
from sample_module import add, SampleClass
add(1, 2) # => 3
sc = SampleClass("taro")
sc.say() #=> taro
as
キーワードas
で指定した名前で呼び出しを行えるようになる。
import sample_module as sm
sm.add(1, 2) # => 3
sc = sm.SampleClass("taro")
sc.say() #=> taro
from sample_module import add as a , SampleClass as c
a(1, 2) # => 3
sc = c("taro")
sc.say() #=> taro
if name == “main”
Pythonのファイルが別のファイルからモジュールとして呼ばれているのか、
直接実行されているかは自動で設定される変数__name__
を参照することで判別できる。
# sample_module.py
def add(a, b):
return a + b
class SampleClass:
def __init__(self, name):
self.name = name
def say(self):
print(self.name)
if __name__ == "__main__":
import sys
sc = SampleClass(sys.argv[1])
sc.say()
のようにすると、sample_module.pyが直接呼び出された場合だけ、
if __name__ == "__main__":
以下が実行される。
python sample_module.py jiro
jiro