关于python中的global关键字

2023-12-31

# 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 
  1. 我不添加global x在func函数中,但仍然可以找到x是50,为什么?
  2. 当我添加x=2func 函数中的一行,将会出现错误(UnboundLocalError: local variable 'x' referenced before assignment), why?

这里的技巧是静态检测本地名称:

  • 只要名字x未在函数中分配,引用x决心在全球范围内
  • 如果名字x被安排了anywhere在该函数中,Python 假设x因此是一个本地名称到处在函数中。结果,第一行变成错误,因为本地名称x在分配之前使用。

换句话说:分配的名称在函数中的任何地方都被视为本地名称,而不仅仅是在分配点之后。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于python中的global关键字 的相关文章

随机推荐