Python为程序员提供了用于反思运行环境的大量工具。
globals()只是其中之一,在调试会话中查看全局作用域实际包含哪些对象可能非常有用。
我敢肯定,其背后的原理与
locals()用于查看函数中定义的变量或
dir用于查看模块的内容或对象的属性的原理相同。
来自C
++背景,我可以理解这些事情似乎是不必要的。在静态链接,静态类型的环境中,它们绝对是。在那种情况下,在编译时确切地知道什么是全局变量,对象将拥有哪些成员,甚至是由另一个编译单元导出的名称。
但是,用动态语言来说,这些事情并不是固定的。它们可以根据导入代码的方式甚至在运行时进行更改。至少由于这个原因,在调试器中访问此类信息可能是无价的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)