こないだまで名前空間って名前的に能力者が使うものだと思っていたんですが全然違いました。しかもトイレに置く消臭剤でもなかった。

今回はそんな「名前空間」の説明を軽くしていきたいと思います。


「名前空間」の考え方

同じ名前でどっちかわからない時に「〇〇の方の××」って言いなおす考え方と同じようなもんです。

例えば
「自分めっちゃ"せとこうじ"好きだわ〜」
「え、どっちの"せとこうじ"?」
「Youtuberの方の瀬戸弘司」

みたいな感じです。カレーだけだと色々あるけど、ココイチのカレーっていったら特定されるみたいな感じです。(雑)



Pythonで考えてみる

同じフォルダに2つの.pyのプログラム、a.pyとb.pyを作ったとします。それぞれの中身は

--------------- a.py ----------------
import b
name = '近松マサヲミ'

--------------- b.py ----------------
name = '沖田義盛'


にしています。この状態でa.pyを実行してみると…

>>>

変数に代入しただけなので何も起こりません(当たり前)
ここでprint(name)を実行するとどうなるか

>>> print(name)
近松マサヲミ

a.pyの方のnameが使われます。
では、どうすればインポートしたb.pyの方のname = '沖田義盛'を使うかと言うと、

>>> print(b.name)
沖田義盛

こうします。つまりb.nameとすることで「bの方のname」と指定することができます。



多分こんな感じです。(知らんけど)


やろうと思ったらこんなこともできます。





で、名前空間というのは、この「範囲」のことです




まとめ

・名前空間を使うことで、重複を避けれる。
・b.c.hogehogeみたいな感じで設定する