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()
posted @ 2019-04-27 10:30  PIPO2  阅读(143)  评论(0编辑  收藏  举报