python中的命名空间可以看作每个名称名称到对应对象的映射,是名称的集合。不同的命名空间可以在给定时间共存,但完全隔离。当启动python解释器时,会创建一个包含所有内置名称的命名空间,并且只要该解释器运行,命名空间就会存在,hence,内置的方法如:id(), print()始终可以在任何地方运行。
命名空间如何隔离:
作用域:
在任何时刻,程序都至少有三个嵌套作用域:
通过代码更清楚的理解作用域:
def fun1():
a = 10
def func2():
a = 20
print(a)
func2()
print(a)
a = 30
fun1()
print(a)
输出:
20
10
30
当global 变量存在时:
def fun1():
global a
a = 10
def func2():
global a
a = 20
print(a)
func2()
print(a)
a = 30
fun1()
print(a)
输出:
20
20
20
因为这里用的是global,变量名在内存中指向的都是一个变量global a,所以输出都是20。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。