局部变量与全局变量

函数与过程的概念

 

函数(function):有返回值

过程(procedure):简单、特殊,没有返回值

 

Python严格来说只有函数,没有过程。

因为Python任何函数都会返回一些东西,有返回值则返回值,没有则返回None,None是一种特殊的值。

 

 

函数变量的作用域


局部变量全局变量

局部变量就是只在函数内有效的变量,在函数外无法调用。

全局变量则在整个文件中有效。

 

在定义函数过程中可以访问全局变量,但是修改全局变量的值是不行的,因为此时Python会自动创建一个与全局变量名相同的局部变量(shadowing),函数执行完之后全局变量实际并未被改变。

>>> x = 50
>>> def func(x):
	print('x等于',x)
	x =2
	print('局部变量x改变为',x)

>>> func(x)
x等于 50
局部变量x改变为 2
>>> print('x一直是',x)
x一直是 50

 

想给在顶层的程序(即未在任何类型的范围如函数或类之中)定义的变量赋值,需要使用global语句告诉Python这个变量是全局的。

>>>x = 50
>>> def func():
	global x    #此处声明x为全局变量
	print('x的值是',x)
	x = 2
	print('全局变量x的值改为',x)

	
>>> func()
x的值是 50
全局变量x的值改为 2
>>> print('x的值是',x)
x的值是 2

  

局部变量与全局变量的说明还可看下:http://c.biancheng.net/cpp/html/1827.html

 

posted @ 2016-02-24 22:12  林间  阅读(249)  评论(0编辑  收藏  举报