次のスクリプトは、「ローカル変数 『VAR』の割り当ての前に参照さ」を生成する前に、参照エラー:のPython 2.7エラー:ローカル変数が割り当て
def func1():
var = var + 1
var = 1
func1()
あなたはどのようにお勧めしますコードを修正するには?関数が呼び出される前に変数がスクリプトで宣言されていると、このエラーが発生するのはなぜですか?
次のスクリプトは、「ローカル変数 『VAR』の割り当ての前に参照さ」を生成する前に、参照エラー:のPython 2.7エラー:ローカル変数が割り当て
def func1():
var = var + 1
var = 1
func1()
あなたはどのようにお勧めしますコードを修正するには?関数が呼び出される前に変数がスクリプトで宣言されていると、このエラーが発生するのはなぜですか?
あなたはそれを修正し、各機能にグローバルとしてそれを宣言することにより、他の関数でグローバル変数を使用することができます。
>>> var = 2
>>> def func():
... global var
... var = var+1
... return var
...
>>> func()
3
OPが質問に編集した後:あなたが定義した後、あなたが変数を移動する場合 を関数に渡す必要があります。
>>> def func(var):
... var = var+1
... return var
...
>>> var = 2
>>> func(var)
3
完璧、ありがとう! – brr
関数には、メインプログラムとは別のスコープがあります。したがって、メインプログラムでvarを定義したとしても、func1()とfunc2()には知られていません。 func1の内部varがそれ外のものとは異なるVARあるので
def func1(var):
var = var + 1
return var
var = 1
var = func1(var)
:あなたのエラーを修正するには、次のように両方の機能にパラメータを通過し、その後、そのように新しい値を返す必要があります。それはfunc1のローカルです。 varには1を加算する値がないため、var = var + 1を実行できないというエラーが表示されます。ダ・ボーイズはあなたに以下のいくつかの選択肢を与えました。 –