首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >本地(?)赋值前引用的变量

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

Stack Overflow用户
提问于 2012-08-10 23:39:11
回答 3查看 423.7K关注 0票数 150
test1 = 0
def testFunc():
    test1 += 1
testFunc()

我收到以下错误:

UnboundLocalError:在赋值之前引用了局部变量'test1‘。

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-10 23:43:49

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

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

但是,如果您只需要读取全局变量,则可以不使用关键字global来打印它,如下所示:

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

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

票数 258
EN

Stack Overflow用户

发布于 2012-08-10 23:45:26

最佳解决方案:不使用global

>>> test1 = 0
>>> def test_func(x):
        return x + 1

>>> test1 = test_func(test1)
>>> test1
1
票数 58
EN

Stack Overflow用户

发布于 2012-08-10 23:41:28

您必须指定test1是全局的:

test1 = 0
def testFunc():
    global test1
    test1 += 1
testFunc()
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11904981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档