Python 变量
变量和常量
-
变量命名使用全部小写的方式,可以使用下划线。
-
变量在使用前必须赋值,然后在内存中创建该变量。
-
变量赋值不需要声明数据类型,Python 会自动检测数据类型。
- 常量命名使用全部大写的方式,可以使用下划线。
>>> a = 10
>>> print(a,type(a))
10 <type 'int'>
命名空间
命名空间(Namespace)是从名称到对象的映射,大部分的命名空间都是通过 Python 字典来实现的。
命名空间提供了在项目中避免名字冲突的一种方法,一个命名空间中不能有重名,但不同的命名空间可以重名。
Python有三种命名空间:局部命名空间,全局命名空间,内置命名空间。
作用域
作用域是 Python 程序可以直接访问命名空间的正文区域。
在一个 python 程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误。
Python的作用域有4种:局部作用域,闭包函数外作用域,全局作用域,内建作用域。
g_count = 0 # 全局作用域
def outer():
o_count = 1 # 闭包函数外作用域
def inner():
i_count = 2 # 局部作用域
全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。
global 和 nonlocal
当局部作用域修改函数外作用域的变量时,要用到global和nonlocal关键字。
g_count = 0
def outer():
global g_count
g_count = 1
o_count = 10
def inner():
nonlocal o_count
o_count = 20
inner()
outer()