加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

关于python中的全局关键字

发布时间:2020-12-20 12:20:03 所属栏目:Python 来源:网络整理
导读:# coding: utf-8def func(): print 'x is',x #x = 2 #if I add this line,there will be an error,why? print 'Changed local x to',xx = 50func()print 'Value of x is',x 我没有在func函数中添加全局x,但它仍然可以找到x为50,为什么? 当我在func函数中添
# coding: utf-8

def func():
    print 'x is',x
    #x = 2   #if I add this line,there will be an error,why?
    print 'Changed local x to',x
x = 50
func()
print 'Value of x is',x

>我没有在func函数中添加全局x,但它仍然可以找到x为50,为什么?
>当我在func函数中添加x = 2行时,会出现错误(UnboundLocalError:赋值前引用的局部变量’x’),为什么?

解决方法

这里的诀窍是静态检测本地名称:

>只要在函数中未指定名称x,对x的引用将解析为全局范围
>如果在函数中的任何位置分配名称x,则Python假定x因此在函数中的任何位置都是本地名称.因此,第一行变为错误,因为在分配之前使用了本地名称x.

换句话说:赋值的名称在函数中的任何地方都被视为局部名称,而不仅仅是在赋值点之后.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读