test1 = 0
def testFunc():
test1 += 1
testFunc()
次のエラーが表示されます。
UnboundLocalError: 割り当て前にローカル変数 'test1' が参照されました。
エラー'test1'
はローカル変数だと言っていますが、この変数はグローバルだと思いました
それで、それはグローバルまたはローカルでありtest1
、引数としてグローバルを渡さずにこのエラーを解決する方法はtestFunc
?
test1 = 0
def testFunc():
test1 += 1
testFunc()
次のエラーが表示されます。
UnboundLocalError: 割り当て前にローカル変数 'test1' が参照されました。
エラー'test1'
はローカル変数だと言っていますが、この変数はグローバルだと思いました
それで、それはグローバルまたはローカルでありtest1
、引数としてグローバルを渡さずにこのエラーを解決する方法はtestFunc
?
関数内で変更するには、グローバル変数としてtest1
定義する必要があります。次に例を示します。test1
test1 = 0
def testFunc():
global test1
test1 += 1
testFunc()
ただし、グローバル変数のみを読み取る必要がある場合はglobal
、次のようにキーワードを使用せずに出力できます。
test1 = 0
def testFunc():
print test1
testFunc()
ただし、グローバル変数を変更する必要があるときはいつでも、キーワードを使用する必要がありますglobal
。
global
最善の解決策: sを使用しない
>>> test1 = 0
>>> def test_func(x):
return x + 1
>>> test1 = test_func(test1)
>>> test1
1
test1 がグローバルであることを指定する必要があります。
test1 = 0
def testFunc():
global test1
test1 += 1
testFunc()