学习是最好的投资!
Python の変数スコープの問題。インタプリタは、run_proc 内の gcc を新しい変数として扱います。
run_proc
gcc
print の前に global gcc を追加するだけです。
print
global gcc
期待通りの結果が得られます。
ちなみに、次回からは質問にエラーメッセージを忘れずに記入してください。
補足: gcc='son' 文を削除しても、global を追加しなくても実行できます。これは、gcc='son' が関数内のローカル変数の宣言文としても Python で使用されるためです。 元のコードは、最初にローカル変数 gcc を使用してからそれを宣言するのと同じであるため、エラーが発生します。この文を削除すると、Python インタプリタはローカル変数ではなくグローバル変数を使用していると認識します。
gcc='son'
global
gcc 変数は関数の外で定義されていますが、関数内で呼び出しているため、次のエラーが発生します
コードをこれに変更して、もう一度試してください。
次の結果が得られました:
Python の変数スコープの問題。インタプリタは、
run_proc
内のgcc
を新しい変数として扱います。print
の前にglobal gcc
を追加するだけです。期待通りの結果が得られます。
ちなみに、次回からは質問にエラーメッセージを忘れずに記入してください。
補足:
gcc='son'
文を削除しても、global
を追加しなくても実行できます。これは、gcc='son'
が関数内のローカル変数の宣言文としても Python で使用されるためです。元のコードは、最初にローカル変数
gcc
を使用してからそれを宣言するのと同じであるため、エラーが発生します。この文を削除すると、Python インタプリタはローカル変数ではなくグローバル変数を使用していると認識します。
リーリーgcc
変数は関数の外で定義されていますが、関数内で呼び出しているため、次のエラーが発生しますコードをこれに変更して、もう一度試してください。
リーリー次の結果が得られました:
リーリー