2021-03-11に投稿

Python モジュール - module

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
Originally published at marusankakusikaku.jp
ツイッターでシェア
みんなに共有、忘れないようにメモ

maru3kaku4kaku

Pythonこつこつ学習中。よく忘れる。

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント