Python变量作用域

 如下代码:

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的值未变,调用之后进行了改变。

你可能感兴趣的:(Python变量作用域)