马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 |