鱼C论坛

 找回密码
 立即注册
查看: 2570|回复: 0

[技术交流] globals()函数(自查手册里好像没有)

[复制链接]
发表于 2023-2-13 18:18:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 歌者文明清理员 于 2023-2-23 19:15 编辑

Python 官方文档对 globals() 函数的定义如下
    返回实现当前模块命名空间的字典。对于函数内的代码,这是在定义函数时设置的,无论函数在哪里被调用都保持不变。
    ///file:C/Users/xxxxx/Desktop/日常懵圈.gif(这行是故意的)
    看不懂?首先先看前半句,当前模块命名空间……就是调用 globals() 函数的程序
    也就是这个程序中所有的变量、函数、类和其他的东西。
    一起康康:
>>> a = 0
>>> globals()['a']
0
  这段代码获取了变量 'a' 的值。
    文档里提到, globals() 函数返回字典。所以,
>>> type(globals())
<class 'dict'>
  看到了吧
    定义中的后半句令人费解。
比如你有一个列表 a = [1, 1, 4] ,然后 b = a
这样的话 a is b 会返回 True,因为它们指向同一个地址
如果 a.append(5); b ,将输出 [1, 1, 4, 5]
但如果 b = a.copy() 的话,b 将不会改变,因为它们不指向同一个地址。
没听懂是吧?啊这,我也没办法
对于 globals() 函数,你只需要理解为
    无论在程序的哪里调用 globals() 函数,它会实时改变。也一样,如果你改变 globals() 函数所返回的字典,程序中的变量也将实时改变。
完 · The end
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 09:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表