首页 / 知识
Python 命名空间
2023-11-12 13:30:00
Python使用叫做命名空间的东西来记录变量的轨迹。命名空间是一个字典(dictionary),它的键就是变量名,它的值就是那些变量的值。
Anamespaceisamappingfromnamestoobjects.MostnamespacesarecurrentlyimplementedasPythondictionaries。
在一个Python程序中的任何一个地方,都存在几个可用的命名空间。
1、每个函数都有着自已的命名空间,叫做局部命名空间,它记录了函数的变量,包括函数的参数和局部定义的变量。
2、每个模块拥有它自已的命名空间,叫做全局命名空间,它记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。
3、还有就是内置命名空间,任何模块均可访问它,它存放着内置的函数和异常。
命名空间查找顺序
当一行代码要使用变量x的值时,Python会到所有可用的名字空间去查找变量,按照如下顺序:
1、局部命名空间:特指当前函数或类的方法。如果函数定义了一个局部变量x,或一个参数x,Python将使用它,然后停止搜索。
2、全局命名空间:特指当前的模块。如果模块定义了一个名为x的变量,函数或类,Python将使用它然后停止搜索。
3、内置命名空间:对每个模块都是全局的。作为最后的尝试,Python将假设x是内置函数或变量。
4、如果Python在这些名字空间找不到x,它将放弃查找并引发一个NameError异常,如,NameError:name'aa'isnotdefined。
嵌套函数的情况:
1、先在当前(嵌套的或lambda)函数的命名空间中搜索
2、然后是在父函数的命名空间中搜索
3、接着是模块命名空间中搜索
4、最后在内置命名空间中搜索
示例:
1info="Adress:"
2deffunc_father(country):
3deffunc_son(area):
4city="Shanghai"#此处的city变量,覆盖了父函数的city变量
5print(info+country+city+area)
6city="Beijing"
7#调用内部函数
8func_son("ChaoYang");
9
10func_father("China")
输出:Adress:ChinaShanghaiChaoYang
以上示例中,info在全局命名空间中,country在父函数的命名空间中,city、area在自己函数的命名空间中
以上内容为大家介绍了Python命名空间,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规Python 之模块重载的五种方法
Python 之模块重载的五种方法,环境,培训,方法,模块,文件夹,例子,下面,内容,语句,请看,python环境准备新建一个foo文件夹,其下包含一个bar.py文使用Python的toolz库开始函数式编
使用Python的toolz库开始函数式编程,代码,函数,培训,位置,参数,字典,顺序,操作,结果,测试,toolz库允许你操作函数,使其更容易理解,更容易测试代如何提速优化python代码?
如何提速优化python代码?,代码,时间,数据,新增,写法,包装,情况,下来,面临,工作,Python是一种脚本语言,相比C/C++这样的编译语言,在效率和性能方为什么Python没有main函数?
为什么Python没有main函数?,入口,代码,灵活,函数,培训,状态,统一,项目,网上,名称,毫无疑问,Python中没有所谓的主入口函数,但是互联网上经常有文Python 模块之输入不可见的密码
Python 模块之输入不可见的密码,密码,系统,情况,公共,位置,信息,电子,网上,认证,培训,密码对程序员来说尤其重要。你不应该在不加密的情况下如何理解Python一切都是变量的说法
如何理解Python一切都是变量的说法?,名称,对象,代码,名字,地址,情况,数字,概念,培训,列表,Python的好处之一是与其他语法繁重的语言相比,PythoPython内置函数
Python内置函数,数字,函数,培训,位置,第一,代码,异常,数据,公式,序列,python中有许多内置函数,不像print那么广为人知,但它们却异常的强大,用好python经典最短代码实现排序的功能
python经典最短代码实现排序的功能,代码,位置,数据,分析,时间,序列,元素,培训,下来,算法,冒泡排序:算法思想:1.比较相邻的元素,如果第一个比第二使用 Python 函数进行模块化
使用 Python 函数进行模块化,代码,时间,函数,工作,名称,通用,系统,信息,项目,培训,你是否对函数、类、方法、库和模块等花哨的编程术语感到困Python标准库之collections模块
Python标准库之collections模块,名字,标准,信息,电话号码,培训,工厂,位置,简介,异常,对象,collections模块简介collections是Python标准库里python之什么是函数式编程?
python之什么是函数式编程?,系统,概念,项目,大规模,状态,数据,培训,函数,语言,副作用,函数式编程(简称FP)是一种编程范式,其中最基本的元素是