python】什么是Python的命名空间

2020-09-02 12:00发布

9条回答

Python 中的命名空间是从标识符到对象的映射,也就是 Python 如何跟踪变量和标识符是否活动以及指向什么。

因此,像x = 1这样的语句,会把x添加到命名空间(假定尚不存在)并将其与值1关联。当在 Python 中执行一个代码块时,它拥有 3 个命名空间:局部(local)、全局(global)和内置(built-in)

珠珠666666
3楼 · 2020-09-02 14:03

在 Python 中,所有的名字都存在于一个空间中,它们在该空间中存在和被操作——这就是命名空 间。它就好像一个盒子,每一个变量名字都对应装着一个对象。当查询变量的时候,会从该盒子里面寻 找相应的对象。

梵梵
4楼 · 2020-09-02 14:40

在Python 中,所有的名字都存在于一个空间中,它们在该空间中存在和被操作——这就是命名空间。

这个巴掌正适合你的脸
5楼 · 2020-09-03 09:20

Python 中,所有的名字都存在于一个空间中,它们在该空间中存在和被操作——这就是命名空间。

想当熊猫
6楼 · 2020-09-03 15:18

Python使用叫做命名空间的东西来记录变量的轨迹。命名空间是一个 字典(dictionary) ,它的键就是变量名,它的值就是那些变量的值。

namespace is a mapping from names to objects. Most namespaces are currently implemented as Python dictionaries。

 

在一个 Python 程序中的任何一个地方,都存在几个可用的命名空间。

     1、每个函数都有着自已的命名空间,叫做局部命名空间,它记录了函数的变量,包括函数的参数和局部定义的变量。

     2、每个模块拥有它自已的命名空间,叫做全局命名空间,它记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。

     3、还有就是内置命名空间,任何模块均可访问它,它存放着内置的函数和异常。


洪荒少女
7楼 · 2020-09-03 16:26

Python 中的命名空间是从标识符到对象的映射,也就是 Python 如何跟踪变量和标识符是否活动以及指向什么。

因此,像x = 1这样的语句,会把x添加到命名空间(假定尚不存在)并将其与值1关联。当在 Python 中执行一个代码块时,它拥有 3 个命名空间:局部(local)、全局(global)和内置(built-in)


我的网名不再改
8楼 · 2020-09-04 11:56

 

在 Python 中,所有的名字都存在于一个空间中,它们在该空间中存在和被操作——这就是命名空间。它就好像一个盒子,每一个变量名字都对应装着一个对象。当查询变量的时候,会从该盒子里面寻找相应的对象。


霸气的名字 - 喜欢晴天
9楼 · 2020-09-04 19:00

在Python中,所有的名字都存在一个空间中,它们在该空间中存在和被操作——这就是命名空间。它就像一个盒子,每一个变量名字都对应装着一个对象。当查询变量的时候,会从该盒子里面找到相应的对象。

【定义】

    名称到对象的映射。命名空间是一个字典的实现,键为变量名,值是变量对应的值。各个命名空间是独立没有关系的,一个命名空间中不能有重名,但是不同的命名空间可以重名而没有任何影响。 

【分类】

    python程序执行期间会有2个或3个活动的命名空间(函数调用时有3个,函数调用结束后2个)。按照变量定义的位置,可以划分为以下3类:

    Local,局部命名空间,每个函数所拥有的命名空间,记录了函数中定义的所有变量,包括函数的入参、内部定义的局部变量。

    Global,全局命名空间,每个模块加载执行时创建的,记录了模块中定义的变量,包括模块中定义的函数、类、其他导入的模块、模块级的变量与常量。

    Built-in,python自带的内建命名空间,任何模块均可以访问,放着内置的函数和异常。

【生命周期】

    Local(局部命名空间)在函数被调用时才被创建,但函数返回结果或抛出异常时被删除。(每一个递归函数都拥有自己的命名空间)。

    Global(全局命名空间)在模块被加载时创建,通常一直保留直到python解释器退出。

    Built-in(内建命名空间)在python解释器启动时创建,一直保留直到解释器退出。

    各命名空间创建顺序:python解释器启动 ->创建内建命名空间 -> 加载模块 -> 创建全局命名空间 ->函数被调用 ->创建局部命名空间

    各命名空间销毁顺序:函数调用结束 -> 销毁函数对应的局部命名空间 -> python虚拟机(解释器)退出 ->销毁全局命名空间 ->销毁内建命名空间

    python解释器加载阶段会创建出内建命名空间、模块的全局命名空间,局部命名空间是在运行阶段函数被调用时动态创建出来的,函数调用结束动态的销毁的。


相关问题推荐

  • 回答 1

    可以试下在cmd命令行执行,编辑器中对turtle的支持度不是很好。

  • 回答 6

    人工智能是一门起步晚却发展快速的科学。20 世纪以来科学工作者们不断寻求着赋予机器人类智慧的方法。现代人工智能这一概念是从英国科学家图灵的寻求智能机发展而来,直到1937年图灵发表的论文《理想自动机》给人工智能下了严格的数学定义,现实世界中实际要...

  • 回答 7

    代理ip网址http://www.goubanjia.com/http://www.ip181.com/https://www.kuaidaili.com/python 环境安装requests库安装bs4库proxies设置代理服务器地址proxies = {'http':  'http://61.155.164.110:3128'}http://www.goub......

  • 回答 2

    要求:用户正确输入用户名和密码便成功登陆,分别有三次机会输入用户名和密码,超过3次便锁定分析:用两个while循环即可,代码如下:user_name = Brettpassword = 1314i = 0n = 0Is_exit = False  #进入循环标志while not Is_exit:User_name = input(please ...

  • 回答 2

    MacOS设置环境变量path的完全总结  一、MacOS加载bash shell 环境变量的加载顺序   mac 一般使用bash作为默认shell,Mac系统的环境变量,加载顺序为:1、系统级别的/etc/profile                                              ...

  • 回答 4

    当你运行代码的时候,需要你指定闹钟的时间,然后闹钟就会在指定的时间想起来。电脑pytho加载time模块,获取此时此刻的时间:import timet = time.localtime()print(t)时间是以字典的形式出现的。从字典里面提取时间信息:now = time.strftime(%H %M, t).spli...

  • 回答 5

    在几千条数据中有正负数,筛选出同一供应商下正负数相加为零的数据,正负数相加有可能为一正一负相加为零,也有可能是一正多负,也有可能一负多正,总体是将可以所有正负数相加为零的数据标注颜色出来。excel论坛上说计算量太 ...可以用pandas来处理...

  • 回答 2
    已采纳

    import sqlite3p = sqlite3.connect(file:memDB1?mode=memory&cache=shared, uri=True)p.execute('CREATE TABLE tbTest (fld1, fld2)')p.execute(INSERT INTO tbTest VALUES ('fld1', 'fld2'...

  • 回答 13

    Java企业级解决方案较多且成熟,国内搜索网站上对于各种问题的解答较多,相比而言,Python成熟企业级解决方案没Java多,资料多以外文为主。国内web开发大环境一直以Java为主,从业者人口基数众多,小白学习Java无论是书籍还是视频资料一搜一大把,从业者技术...

  • 回答 27

    当然可以了,不只是可以处理表格,而且是非常高效的额处理表格,能大大减轻工作量学会使用Python处理表格的话之前接了一个国企的case,说让我们给出一个解决方案关于数据处理方面的,去了他们天津的公司,一个部门7个人,7个人的工作我看了一下,我和我的同事...

  • 回答 22

    1、兼职处理数据2、兼职查询资料3、兼职P图

  • 回答 26

       Python是一门编程语言。相比于其他编程语言, Python爬取网页文档的接口更简洁;Python的urlib2包提供了完整的访问网页文档的API ;并且python中有优秀的第三方包可以高效实现网页抓取,可用极短的代码完成网页的标签过滤功能。所以Python被很多人称为爬虫。...

  • 回答 17

    可以的,python语法简单。刚开始学习可以试一下

  • 回答 25

    这两个其实现在用的都很普遍,java可能更好用一些吧

  • 回答 19

    1.if 语句1)基本用法:if 要判断的条件:    条件成立的时候,要做的事情else:    条件不成立的时候,要做的事情 if和else语句以及各自的缩进部分都是一个完整的代码块示例:2)if ,elifif 要判断的条件:    条件成立的时候,要做的事情elif 条件2...

  • 回答 26

    首先,从应用领域来看,Python语言涉及范围广,应用路径宽。其中包括:  (1)Web和Internet开发  (2)科学计算和统计  (3)人工智能  (4)桌面界面开发  (5)软件开发  (6)后端开发  (7)网络爬虫...

没有解决我的问题,去提问