变量作用域其实就是相当于变量的命名空间,赋值过的变量并不是在哪里都可以使用,如何定义变量决定了变量可以在哪里被使用,Python 中变量赋值的位置 决定了 那些范围内的对象可以访问这个变量,这个范围就被成为变量域。
Python中有两种最基本的变量作用域:局部变量和全局变量。
局部变量
一般情况下,在函数内部赋值的变量,不做特殊声明的都是局部变量,顾名思义,局部变量的作用域是局部的,在当前函数赋值则只能在当前使用。
如果在函数体中第一次出现的,就是局部变量:
#!/use/bin/env python2.7 # -*_ coding: utf-8 _8_ def hankai_ceshi(): x = "韩锴" print (x) y = "汉" print (y) hankai_ceshi()
执行结果如下:
韩锴
汉
可以看到,函数内正确打印出了 ”x“,”y“变量的内容,x,y 是在函数体内被赋值的,所以 变量是局部变量,局部变量只能在函数体内被访问,超出函数体的返回就不能正常执行。例如:
#!/use/bin/env python2.7 # -*_ coding: utf-8 _8_ def hankai_ceshi(): x = "韩锴" print (x) y = "汉" print (x,y) hankai_ceshi() print (x,y)
执行结果如下:
韩锴
韩锴 汉
Traceback (most recent call last)