首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建命名空间中的python作用域和运行顺序

构建命名空间中的python作用域和运行顺序
EN

Stack Overflow用户
提问于 2017-02-06 20:24:04
回答 1查看 21关注 0票数 0

为什么这在python中不起作用?在python中,当没有对同一变量的其他引用时,我可以访问封闭作用域(这里是全局作用域),但当有引用时,我就不能访问。

解释器是否先在函数下面查找变量定义,然后假设它只是一个还没有赋值的局部变量?这里解释器的运行顺序是什么?

代码语言:javascript
复制
> a = 5
> a
Out[3]: 
5
> def closure():
    print(a)

> closure()
5
> def closure():
    print(a)
    a = "another"
    return a
> closure()

UnboundLocalError: local variable 'a' referenced before assignment
EN

回答 1

Stack Overflow用户

发布于 2017-02-06 20:27:48

global a添加到函数的第一行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42067734

复制
相关文章

相似问题

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