Pythonでは、モジュール間でグローバル変数を共有する場合があります。しかし、関数内からグローバル変数を書き換える場合、使用前にglobal
で変数を宣言しなければなりません。また、モジュール外から他のモジュールのグローバル変数にアクセスしようとしても、思うようにいきません。
これらの問題を解決する方法として、global_value.py
という中身空っぽのファイルを作成し、それをg
としてimportします。そして、グローバル変数をg.val1
のように使用します。
# my_function.py
import global_value as g
def func1():
g.val1 = 1
# main.py
import my_function
import global_value as g
def main():
func1()
print(g.val1)
この方法を使用すると、global
の宣言は一切必要なくなり、g.
をつけた変数はグローバル変数として扱えるようになります。この変数は、他のモジュールからでも、クラス内からでも自由にアクセスできます。
この方法は、Pythonのグローバル変数の扱いに困っている方にとって、非常に有用な情報であると思います。ぜひ試してみてください。