一尘不染

赋值之前引用的本地(?)变量

python

test1 = 0
def testFunc():
test1 += 1
testFunc()

我收到以下错误:

UnboundLocalError:分配前已引用局部变量“ test1”。

错误说那'test1'是局部变量,但我认为这个变量是全局变量

那么它是全局的还是局部的,以及如何在不将globaltest1作为参数传递给的情况下解决此错误testFunc


阅读 244

收藏
2021-01-20

共1个答案

一尘不染

为了test1在函数内部进行修改,您需要将其定义test1为全局变量,例如:

test1 = 0
def testFunc():
    global test1 
    test1 += 1
testFunc()

但是,如果只需要读取全局变量,则可以不使用关键字进行打印global,就像这样:

test1 = 0
def testFunc():
     print test1 
testFunc()

但是,每当需要修改全局变量时,都必须使用关键字global

2021-01-20