前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python命名空间和作用域

python命名空间和作用域

原创
作者头像
用户9955628
发布2022-09-08 20:19:49
4110
发布2022-09-08 20:19:49
举报
文章被收录于专栏:python3基础算法

python中的命名空间可以看作每个名称名称到对应对象的映射,是名称的集合。不同的命名空间可以在给定时间共存,但完全隔离。当启动python解释器时,会创建一个包含所有内置名称的命名空间,并且只要该解释器运行,命名空间就会存在,hence,内置的方法如:id(), print()始终可以在任何地方运行。

命名空间如何隔离:

作用域:

在任何时刻,程序都至少有三个嵌套作用域:

  1. 具有本地名称的当前函数作用域 local
  2. 具有全局名称的模块作用域 model
  3. 具有内置名称的最外部作用域

通过代码更清楚的理解作用域:

代码语言:javascript
复制
def fun1():
    a = 10
    def func2():
        a = 20
        print(a)
    func2()
    print(a)


a = 30
fun1()
print(a)
输出:
20
10
30

当global 变量存在时:

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档