首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是python预先读取下一行代码吗?

是python预先读取下一行代码吗?
EN

Stack Overflow用户
提问于 2018-06-04 12:15:00
回答 1查看 71关注 0票数 0
代码语言:javascript
运行
复制
var = "Old world"
class a(object):
    def b(self):
        print(var)
        #var = "Updated world"      
aObj = a()
aObj.b()

当我运行上面的代码时,它工作得很好。但是当我取消对第5行var="Updated World"的注释时,它会在第4行抛出UnboundLocalError。我知道我不能在第5行修改var。但是为什么在第4行出现错误。任何好的输入都是受欢迎的。

EN

Stack Overflow用户

回答已采纳

发布于 2018-06-04 12:28:11

Python解析器甚至在执行一行文件之前读取整个文件。当一个函数被def合并时,它的主体被解析,并且Python决定什么符号(变量名)指什么。如果它在函数中看到任何赋值语句,则它将受让人作为局部变量;除非您使用globalnonlocal关键字显式重写该语句。如果函数体中没有赋值语句,则从外部范围继承变量。

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

https://stackoverflow.com/questions/50680385

复制
相关文章

相似问题

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