スコープの問題以前に、コードに不備があり
mod1func() が呼ばれていない為 var は mod1 側でも未定義のままです。
クラス、ファイルを跨いだ定数の共有の仕方
「組み込みオブジェクト」を使う事で字面通りの目的は達成出来ます、が・・・
本当にそのような広域なスコープが必要かどうかよく考えましょう。
一応、紹介のみ
python
1def mod1func():
2 import builtins
3 builtins.var = "AAA
python
1
2from mod1 import mod1func
3
4
5def mod2func():
6 print(var)
7
8
9if __name__ == "__main__":
10 mod1func()
11 mod2func()
この様な機能が必要になるケースでは、まず設計の見直しをお勧めします。
適切にモジュールを名前空間として活用しましょう。
上記の場合の問題は、var のスコープが実行時の環境全域に渡るので
名称が被る心配がある。組み込みの類似名 vars との混同される心配、等々
主にデバッグ時に多くのトラブルが予想されます。
python
1# mod2.py
2import mod1
3
4
5def mod2func():
6 print(mod1.VAR)
7
8
9if __name__ == "__main__":
10 mod2func()
ほぼ記述量は変わらないし、
スコープもモジュール内のみなので安全に運用できます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。