名前空間

名前空間とは、変数や関数の名前が所属している場所のことです。

変数や関数が所属する場所、つまりモジュールやクラスが名前空間になります。

異なる名前空間にある同じ名前のオブジェクトには何の関係もないということを覚えておきましょう。

例えば、module_A, module_Bという二つのモジュールがあるとき、それぞれに同じ名前の関数や変数を定義することができます。

名前空間のイメージ

# module_A

spam = 'Aのspam'

def func():
    func_spam = 'Aのfunc()'
    print(func_spam)
# module_B

spam = 'Bのspam'

def func():
    func_spam = 'Bのfunc()'
    print(func_spam)

同じ名前の関数を呼び出すときは、関数の前にモジュール名をつけます。

import module_A
import module_B

print(module_A.spam)  # 'Aのspam'と表示される
print(module_B.spam)  # 'Bのspam'と表示される

module_A.func()  # 'Aのfunc()'と表示される
module_B.func()  # 'Bのfunc()'と表示される

名前空間についてさらに詳しく学ぶには、Python3公式ドキュメント-チュートリアル 9.クラスを参照ください。