python中locals函数_python中locals和globals函数
首先,是关于名字空间的一个名词解释。是枯燥,但是很重要,所以要耐心些。Python使用叫做名字空间的东西来记录变量的轨迹。名字空间只是一个 字典,它的键字就是变量名,字典的值就是那些变量的值。实际上,名字空间可以象Python的字典一样进行访问,一会我们就会看到。
在一个Python程序中的任何一个地方,都存在几个可用的名字空间。每个函数都有着自已的名字空间,叫做局部名字空间,它记录了函数的变量,包括 函数的参数和局部定义的变量。每个模块拥有它自已的名字空间,叫做全局名字空间,它记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常 量。还有就是内置名字空间,任何模块均可访问它,它存放着内置的函数和异常。
当一行代码要使用变量 x 的值时,Python会到所有可用的名字空间去查找变量,按照如下顺序:
局部名字空间 - 特指当前函数或类的方法。如果函数定义了一个局部变量 x,Python将使用这个变量,然后停止搜索。
全局名字空间 - 特指当前的模块。如果模块定义了一个名为 x 的变量,函数或类,Python将使用这个变量然后停止搜索。
内置名字空间 - 对每个模块都是全局的。作为最后的尝试,Python将假设 x 是内置函数或变量。
如果Python在这些名字空间找不到 x,它将放弃查找并引发一个 NameError 的异常,同时传 递 There is no variable named 'x' 这样一条信息
象Python中的许多事情一样,名字空间在运行时直接可以访问。特别地,局部名字空间可以通过内置的 locals 函数来访问。全局(模块级别)名字空间可以通过 globals 函数来访问
locals 介绍
1 >>> def test(arg):
2 #函数 foo 在它的局部名字空间中有两个变量:arg(它的值被传入函数),和 z(它是在函数里定义的)。
3 z = 1
4 print locals()
5 >>> test(4)
6 #locals 返回一个名字/值对的字典。这个字典的键字是字符串形式的变量名字,字典的值是变量的实际值。
7 #所以用 4 来调用 foo,会打印出包含函数两个局部变量的字典:arg (4) 和 z (1)。
8 {'z': 1, 'arg': 4}
9 >>> test('doulaixuexi')
10 #locals 可以用于所有类型的变量。
11 {'z': 1, 'arg': 'doulaixuexi'}
12 >>>
globals 介绍
由此可见,发现globals 函数返回一个全局变量的字典,包括所有导入的变量。
python中locals函数_python中locals和globals函数相关推荐
- python算法和数据结构_Python中的数据结构和算法
python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...
- python中定义数据结构_Python中的数据结构—简介
python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...
- python中locals函数_Python神奇的内置函数locals的实例讲解
摘要 本文我们介绍神奇的locals函数,包括动态创建变量和动态访问变量,以及一个应用场景. 相同属性不相邻问题 需求:有两个list,分别为list1和list2.list1中有n个对象,每个对象有 ...
- python local函数_python中的函数
函数 一.函数的定义 def是可执行的代码.def创建了一个对象并将其赋值给某一变量名.def语句是实时执行的,即:def在运行时才进行评估,而在def之中的代码在函数调用后才会评估.函数本身就是一个 ...
- python中的json函数_python中装饰器、内置函数、json的详解
装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...
- python nums函数_Python中的内置函数
Python中有很多内置函数,不需要我们调用模块可以直接使用,而且都是常用函数的封装,下面我们来看看Python中的内置函数都有那些. 1.abs() abs()是绝对值函数,把一个负数转化为正数,数 ...
- python eval函数_Python中eval与exec区别 | 萧小寒
摘要 学过JavaScript的人都知道,在JS中有一个函数叫内置函数叫eval.eval函数可计算某个字符串,并执行其中的的JavaScript代码.正是因为这个特性,所以现在很多教材都不推荐使用这 ...
- python函数中的变量_Python中的函数与变量
本节内容 函数的定义方法 函数功能 函数的返回值 函数的形参与实参 全局变量与局部变量 递归 函数的作用域 匿名函数lambda 函数式编程 常用内置函数 其他内置函数 函数 函数的定义方法 函数就相 ...
- python 高级使用实例_Python中的高级函数map/reduce使用实例
怎么用Python写mapreduce,请举例说明,初学者,请1.lambda # 匿名函数# 基本用法 lambda x: x**2 # 第一个参数,然后是表达式# 也可以使用如下(lambda x ...
最新文章
- CVPR 2019 | 西北工业大学开源拥挤人群数据集生成工具,大幅提升算法精度
- GridView中使用CheckBox
- 巅峰对决 Spring Boot VS .NET 6
- 理解 with递归调用 Sqlserver 树查询
- java 数字任意三个数_求Java编程个猜数字游戏!任意输入个数根据提示大了或小了直到选对...
- sp3 win xp 符号表_[转载]Windows XP with SP3 各版本全搞定(附序列
- 【iPod转换精灵V10.2 官方最新版】强大的视频转换功能
- 标准cpci接口定义_cpci接口定义精简
- 我的世界服务器彩虹云,《我的世界》彩虹云跑酷地图存档
- python pip卸载不了库,比如使用pyinstaller时greenlet报错但卸载不了
- 阿里云云计算工程师(ACP)认证证书及考试须知
- 关联规则 置信度与支持度以及Apriori算法简介
- Day03_【数组、ArrayList】
- 如何用PPT画出好看的科研图
- 号称全网最全CAD组合键功能详解
- 佳能Canon MF9200 Series 一体机驱动
- java和易语言对比_国外流行排行榜编程语言和易语言相比较的优势和劣势
- matlab实验结果图片保存
- 广告sdk是什么意思?广告SDK分类及用途介绍
- mailbox的controller
热门文章
- 她为什么赢得了老公的尊重
- 五、SALV 添加页眉Top of Page 和页脚End of Page
- 【React】react-infinite-scroll-component 实现滚动加载
- 电商技巧:如何整店商品图片下载并分类保存
- 【CDQ分治+FFT】LGP4566 [CTSC2018]青蕈领主
- callback函数详解
- SQL Server工具--bcp介绍与使用
- 用lru_cache提高性能
- 简述thinkphp自带队列think-queue的使用以及通过supervisor实现常驻进程
- squeeze()和unsqueeze()