1. ホーム
  2. パイソン

[解決済み】Python関数のグローバル変数?

2022-03-25 06:13:27

質問

このような混乱があるので、そもそもグローバル変数の使用は避けるべきとは思いますが、もし使用するとしたら、次のような方法が有効でしょうか?(別の関数で作成した変数のグローバルコピーを呼び出そうとしています)。

x = "somevalue"

def func_A ():
   global x
   # Do things to x
   return x

def func_B():
   x = func_A()
   # Do things
   return x

func_A()
func_B()

を実行しますか? x のグローバルコピーの値が同じであれば、2番目の関数が使用する x その func_a が使用され、修正されるのですか?定義後の関数を呼び出すとき、順序は重要ですか?

解決するには?

グローバル変数に単純にアクセスしたい場合は、その名前を使うだけです。しかし 変更 を使用する必要があります。 global というキーワードがあります。

global someVar
someVar = 55

これは、グローバル変数の値を55に変更することになります。そうでなければ、ローカル変数に55が代入されるだけです。

関数定義のリストの順番は重要ではありません(何らかの方法でお互いを参照していないと仮定して)、呼び出される順番が重要なのです。