gpt4 book ai didi

debugging - 枚举或列出 [您最喜欢的语言] 程序中的所有变量

转载 作者:行者123 更新时间:2023-12-02 22:16:22 25 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

8年前关闭。




Improve this question




上周一位 friend 问我如何枚举或列出程序/函数/等中的所有变量。出于调试的目的(基本上是获取所有内容的快照,以便您可以查看设置了哪些变量,或者是否设置了它们)。我环顾四周,发现了一个相对较好的 Python 方法:

#!/usr/bin/python
foo1 = " Hello World "
foo2 = "酒吧"
foo3 = {"1":"a",
"2":"b"}
foo4 = "1+1"

对于 dir() 中的名称:
我的值(value) = 评估(名称)
print name, "is", type(name), "and is equal to ", myvalue

这将输出如下内容:

__builtins__ 是 并且等于
__doc__ 是 并且等于 None
__file__ 是 并且等于 ./foo.py
__name__ 是 并且等于 __main__
foo1 是 并且等于 Hello world
foo2 是 并且等于 bar
foo3 是 并且等于 {'1': 'a', '2': 'b'}
foo4 是 并且等于 1+1

到目前为止,我在 PHP 中找到了一种部分方法(由 link text 提供),但它只列出了所有变量及其类型,而不是内容:

//创建一些变量
$bar = 'foo';
$foo ='酒吧';
//创建一个新的数组对象
$arrayObj = new ArrayObject(get_defined_vars());
//遍历数组对象并回显变量和值
for($iterator = $arrayObj->getIterator(); $iterator->valid(); $iterator->next())
{
回声 $iterator->key() 。 ' => ' 。 $iterator->current() 。 '
';
}
?>

所以我告诉你:你如何用你最喜欢的语言列出所有变量及其内容?

编辑 VonC : 我提出这个问题有点“ code-challenge”的精神。
如果您不同意,只需编辑并删除标签和链接。

最佳答案

在 python 中,使用返回包含所有本地绑定(bind)的字典的 locals,从而避免 eval:

>>> foo1 = "Hello world"
>>> foo2 = "bar"
>>> foo3 = {"1":"a",
... "2":"b"}
>>> foo4 = "1+1"

>>> import pprint
>>> pprint.pprint(locals())
{'__builtins__': <module '__builtin__' (built-in)>,
'__doc__': None,
'__name__': '__main__',
'foo1': 'Hello world',
'foo2': 'bar',
'foo3': {'1': 'a', '2': 'b'},
'foo4': '1+1',
'pprint': <module 'pprint' from '/usr/lib/python2.5/pprint.pyc'>}

关于debugging - 枚举或列出 [您最喜欢的语言] 程序中的所有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/430811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com