回答編集履歴
1
不十分な回答に追記
test
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
追記
|
2
|
+
|
3
|
+
まず、質問者様の
|
4
|
+
|
5
|
+
> ・importしたモジュールのグローバル変数の初期化は、import元でimportした時点でのみ行われる
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
この仮説は正しいものです。importするスクリプトは、import時に一度評価されるだけです。それ以降importしたメソッドを呼んでも、Test.pyのtest1=5の部分が再実行されるわけではないので、値は更新
|
10
|
+
|
11
|
+
されません。(もちろん`Test.test1=5`などと明示的に変更する場合は別です)
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
(追記ここまで)
|
16
|
+
|
17
|
+
|
18
|
+
|
1
19
|
Pythonでは同名のモジュールのimportは一度だけしか行われません。2回目のimport時は既にimportされていることを確認して何も行わない仕様になっています。したがって、グローバル変数が更新されていないわけではなく、モジュール全体が更新されていないわけです。
|
2
20
|
|
3
21
|
|