
内置函数--global() 和 local()
发布日期:2021-05-08 23:41:53
浏览次数:24
分类:博客文章
本文共 2009 字,大约阅读时间需要 6 分钟。
- 一 . globals :返回当前作用域内全局变量的字典。
>>> globals(){'__spec__': None, '__package__': None, '__builtins__':, '__name__': '__main__', '__doc__': None, '__loader__': }>>> a = 1>>> globals() #多了一个a{'__spec__': None, '__package__': None, '__builtins__': , 'a': 1, '__name__': '__main__', '__doc__': None, '__loader__': }
二 .local() 函数功能返回当前作用域内的局部变量和其值组成的字典,与globals函数类似(返回全局变量)
>>> locals(){'__package__': None, '__loader__':, '__doc__': None, '__name__': '__main__', '__builtins__': , '__spec__': None}>>> a = 1>>> locals() # 多了一个key为a值为1的项{'__package__': None, '__loader__': , 'a': 1, '__doc__': None, '__name__': '__main__', '__builtins__': , '__spec__': None}
2. 可用于函数内。
>>> def f(): print('before define a ') print(locals()) #作用域内无变量 a = 1 print('after define a') print(locals()) #作用域内有一个a变量,值为1 >>> f>>> f()before define a {} after define a{'a': 1}
3. 返回的字典集合不能修改。
>>> def f(): print('before define a ') print(locals()) # 作用域内无变量 a = 1 print('after define a') print(locals()) # 作用域内有一个a变量,值为1 b = locals() print('b["a"]: ',b['a']) b['a'] = 2 # 修改b['a']值 print('change locals value') print('b["a"]: ',b['a']) print('a is ',a) # a的值未变 >>> f()before define a {}after define a{'a': 1}b["a"]: 1change locals valueb["a"]: 2a is 1>>>
总结: (老男孩python全栈视频教程)
global();获取全部的全局变量,返回一个字典
local():获取指定范围内的局部变量, 返回一个字典
def m(): a = 10 print("全局变量:", globals()) print("局部变量:", locals())m()
分析: 在m()函数内增加了一个a局部变量, 所以局部变量只有一个, 全局变量. 全局变量有很多, 都是默认的
返回结果:
全局变量: {'__name__': '__main__', '__doc__': '内置函数', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0291A410>, '__spec__': None, '__annotations__': {}, '__builtins__':, '__file__': 'D:/PycharmProjects/test/dir05/neiZhiHanShu.py', '__cached__': None, 'm': } 局部变量: {'a': 10}
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月14日 09时03分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
echarts 基本图表开发小结
2019-03-11
adb通过USB或wifi连接手机
2019-03-11
JDK9-15新特性
2019-03-11
TreeSet、TreeMap
2019-03-11
JVM内存模型
2019-03-11
可变长度参数
2019-03-11
3、条件查询
2019-03-11
cordova打包apk更改图标
2019-03-11
GitHub上传时,项目在已有文档时直接push出现错误解决方案
2019-03-11
文件系统的层次结构
2019-03-11
vue(渐进式前端框架)
2019-03-11
vscode设置eslint保存文件时自动修复eslint错误
2019-03-11
Remove Extra one 维护前缀最大最小值
2019-03-11
wgcloud运维监控系统错误:防篡改校验错误次数大于10次,不再上报数据
2019-03-11
Linux操作系统的安装与使用
2019-03-12
C++ 继承 详解
2019-03-12
OSPF多区域
2019-03-12
Docker入门之-镜像(二)
2019-03-12
数据结构——链表(3)
2019-03-12
去了解拉绳位移编码器的影响因素
2019-03-12