1、内置的命名空间:python解释器中的,如print(),input()等 2、全局命名空间:是在程序从上到下被执行过程中依次加载进内存的,放置了我们设置的所有变量名和函数名 3、局部命名空间:就是函数内部定义的名字。当调用函数时才会产生 这个命名空间,随着函数执行的结束,这个命名空间就又消失了
1、在局部,可以使用全局、内置命名空间中的名字 2、在全局,可以使用内置、全局的命名空间中的名字,不能使用局部。 3、在内置的命名空间里面,不能使用局部和全局的命名空间的名字。 附: 依赖倒置原则指的是上层模块应该依赖下层(底层)模块,而不能反向依赖
1、当我们在全局定义了和内置名字空间中同名的名字时,会使用全局的名字,如果没定义,则使用内置的名字。 2、当本级程序有变量的时候,那么将不会在往父级查看(调用父级同名元素),如果内置空间也不存在这个名字,则会报错。
1、函数名():函数的调用,也可以说函数的内存地址加括号()。 2、函数名:代表函数的内存地址。 3、多个函数应拥有多个独立的名字空间。
python中的作用域和其他语言一样,分为全局作用域和局部作用域,各个作用域的简介如下: 1、全局作用域
作用在全局(内置/全局命名空间中的名字都属于此)使用globals()可以查看全局作用域中的所有变量的名字实例: 查看全局作用域中所有变量的名字 从中可以看出,里面有很多的内置变量。 2、局部作用域
作用在局部(作用在局部命名空间中的名字属于局部作用域)使用locals()方法查看局部作用域的所有变量,将会返回以字典形式返回。如果将此方法放在全局位置,则返回结果与globals()方法返回值相同。对于不可变的数据类型,在局部可以查看全局作用域中的变量, 但是不能直接修改此变量,如果想要修改,需要在程序一开始添 加global声明。实例(将全局变量num的值改为10) 如下: