在程序中定于一个变量时,这个变量时有作用范围的,变量的作用范围被称为它的作用域,根据定义变量的位置,变量分为两种:
局部变量:在函数中定义的变量,包括参数,都被称为局部变量。
全局变量:在函数外面,全局范围内定义的变量,被称为全局变量。
每个函数在执行时,系统都会为该函数分配一块‘临时内存空间’,所有的局部变量都被保存在这块临时内存空间内。但函数执行完成后,这块内存空间就被释放了,这些局部变量也就消失了。
全局变量意味着他们可以在所有函数内被访问。
不管实在函数的局部范围还是全局范围内,都存在多个变量,每个变量持有该变量的值,这些变量和他们的值就想一个看不见的字典,其中变量名字就是key,变量值就是value。
实际上python提供了如下三个工具函数来获取指定范围内的‘变量词典’
globals():该函数返回全局范围内所有变量组成的‘变量字典’
local():该函数返回当前局部范围内所有变量组成的‘变量字典’
vars(object):获取在只能法定对象范围内所有变量组成的‘变量字典’,如果不传入object参数,vars()和locals()的作用完全相同。
locals()总是获取当前局部范围内所有变量组成的‘变量字典’,因此,如果在全局范围内调用locals()函数,同样获取全局范围内所有变量组成的‘变量字典’,globals()无论在哪执行总是获取全局范围内所有变量组成的‘变量字典’
>>> def test():
age=20
print(age)
p