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

Python变量作用域

2015-06-21 17:44 579 查看
如下代码:

x = "I am a global var"

def showMessage():
	y  =  "y:I am a local var"
	x = "100"
	
showMessage()
print x
print y


此时,打印了如下结果:
I am a global var

但报如下错误:

NameError: name 'y' is not defined,即y未被定义。

说明:x是全局变量,在函数中虽然定义了x同名变量,但变量的值100是对局部x的操作,所以print x 打印的仍是全局变量的值。

y是局部变量,所以在函数外打印是不能正确输出的,报未定义错误。

那么,如何实现全局变量在函数中可以改变值,且局部变量在函数外可以打印呢?

看如下代码:

x = "I am a global var"

def showMessage():
	global y
	y  =  "y:I am a local var"
	global x
	x = "100"

print x	
showMessage()
print x
print y
结果如下:

I am a global var
100
y:I am a local var


在函数中,通过global强制转换x和y为全局变量,从而在函数外进行打印。

在showMessage函数调用之前x的值未变,调用之后进行了改变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: