您的位置:首页 > 编程语言 > Python开发

Python: 全局变量 & 局部变量的使用

2017-07-10 17:33 417 查看
  码Python代码时,想用全局变量,报了错。所以上网查了相关文档,总结出 以下几点

函数内部的变量名如果 第一次 出现,且出现在 = 前面,则在该函数内部被视为定义一个局部变量。

函数内部的变量名如果 第一次 出现,且出现在 = 后面,且该变量在全局域中已定义,则这里将引用全局变量(如果此时该变量在全局域中没有定义,则会报错 UnboundLocalError)。

如果变量在 全局域 中和 局部域 有定义,则默认会使用局部变量。

如果要在函数中给全局变量 赋值,需要用 global 关键字声明。

自己写一段代码来验证它:

  代码段_0:

num = 100

def show(value):
print 'id = %s' % id(value)

def func_0():
temp = num
show(temp)

def func_1():
global num
show(num)

show(num)
func_0()
func_1()


  Output:

id = 30312368
id = 30312368
id = 30312368

Process finished with exit code 0


  代码段_1:

num = 100

def show(value):
print 'id = %s' % id(value)

def func_0():
temp = num
show(temp)

def func_1():
num += 1
show(num)

show(num)
func_0()
func_1()


  Output:

Traceback (most recent call last):
id = 28153776
File "/home/user/Desktop/temp.py", line 20, in <module>
id = 28153776
4000
func_1()
File "/home/user/Desktop/temp.py", line 14, in func_1
num += 1
UnboundLocalError: local variable 'num' referenced before assignment

Process finished with exit code 1


成功地印证了上面的四条。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: