【发布时间】:2012-06-09 12:32:06
【问题描述】:
在 python 中我可以使用 dir() 在球拍 (5.2) 中我可以这样做
(require xrepl)
,apropos
获取所有已定义变量的列表。在所有方案中都有什么可移植的方法来做同样的事情?完成后,如何过滤掉所有系统和模块变量?变量的完整列表在球拍中相当令人生畏。
【问题讨论】:
-
“系统和模块变量”是什么意思?你想看哪些?
-
在所有方案中都没有办法做到这一点。
-
我只想查看用户变量,而不是其他模块或系统定义的内容。
-
“用户”变量和“系统”变量之间没有区别。如果您的代码以#lang 开头,那么您正在编写一个模块。系统库也被定义为模块。没有区别。但我很困惑。你说你想要和 Python dir() 一样。来自手册:“内置函数 dir() 用于找出模块定义的名称。”所以你的问题是关于模块中的变量?
-
我猜“用户”不是很清楚。我经常让我的 REPL 长时间处于打开状态。我可能已经完成了一半,我不记得我使用过的变量的名称。我想看看他们的名单。不带参数的 Python dir() 会给我一个本地命名空间中所有变量的列表,包括导入和系统变量(我也可以使用 locals())。 ,apropos 似乎也是如此,但列表很大,xrepl 并不总是可用。应该有某种方法可以获取本地命名空间中的名称列表,然后可能会减去您在下面的答案中给出的列表。