回答編集履歴
1
内容変更
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
```Shell
|
11
11
|
$ python test.py
|
12
12
|
```
|
13
|
-
と実行した場合、上記のif文のある名前空間(と言っていいのかな?識者のフォロー求む)は`__main__`となります。
|
13
|
+
と実行した場合、上記のif文のある~~名前空間(と言っていいのかな?識者のフォロー求む)~~モジュール名は`__main__`となります。
|
14
14
|
|
15
15
|
一方、このtest.pyを、test関数を提供するライブラリとしてimportする場合。
|
16
16
|
```Python
|
@@ -22,6 +22,6 @@
|
|
22
22
|
この場合、test関数が実行される回数は、さて何回でしょう?
|
23
23
|
|
24
24
|
・・・答えは1回、test2.pyの中でのみ実行されます。
|
25
|
-
なぜならば、importしたtest.pyの中では、`__name__`の値は`test`となるからです。
|
25
|
+
なぜならば、importしたtest.pyの中では、モジュール名を示す`__name__`の値は`test`となるからです。
|
26
26
|
|
27
27
|
この仕組みにより、「直接実行した場合にだけ、何か処理を行う」という機能と、「ライブラリとして機能を使いまわしたい場合に余計なことをしない」機能の両立がなされるというわけです。
|