上周一个朋友问我如何枚举或列出程序/函数/等中的所有变量。出于调试目的(本质上是获取所有内容的快照,以便您可以看到设置了哪些变量,或者根本没有设置它们)。我环顾了一下,发现了使用Python的相对不错的方法:
#!/ usr / bin / python foo1 =“你好世界” foo2 =“ bar” foo3 = {“ 1”:“ a”, “ 2”:“ b”} foo4 =“ 1 + 1” 对于dir()中的名称: myvalue = eval(名称) 打印名称,“是”,类型(名称),“和等于”,myvalue
这将输出类似:
__builtins__是<type'str'>并且等于<module'__builtin__'(内置)> __doc__是<type'str'>,等于无 __file__是<type'str'>,等于./foo.py __name__是<type'str'>,等于__main__ foo1是<type'str'>,等于Hello world foo2是<type'str'>,等于bar foo3是<type'str'>,等于{'1':'a','2':'b'} foo4是<type'str'>,等于1 + 1
到目前为止,我已经在PHP中找到了一种局部方法(由link text提供),但是它只列出了所有变量及其类型,而不列出内容:
<?php //创建一些变量 $ bar ='foo'; $ foo ='bar'; //创建一个新的数组对象 $ arrayObj =新的ArrayObject(get_defined_vars()); //遍历数组对象并回显变量和值 for($ iterator = $ arrayObj-> getIterator(); $ iterator-> valid(); $ iterator-> next()) { echo $ iterator-> key()。'=>'。$ iterator-> current()。'<br />'; } ?>
所以我告诉你:如何用自己喜欢的语言列出所有变量及其内容?