为了账号安全,请及时绑定邮箱和手机立即绑定

枚举或列出[您在这里喜欢的语言]程序中的所有变量

枚举或列出[您在这里喜欢的语言]程序中的所有变量

拉丁的传说 2019-10-25 09:55:35
上周一个朋友问我如何枚举或列出程序/函数/等中的所有变量。出于调试目的(本质上是获取所有内容的快照,以便您可以看到设置了哪些变量,或者根本没有设置它们)。我环顾四周,发现了使用Python的相对不错的方法:#!/ usr / bin / python                                                                                                                                                                                                                           foo1 =“ Hello world”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 worldfoo2是<type'str'>,等于barfoo3是<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 />';        }?>因此,我向您介绍:如何用您喜欢的语言列出所有变量及其内容?VonC编辑:我建议这个问题遵循一点“ 代码挑战 ” 的精神。
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

在python中,使用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'>}


查看完整回答
反对 回复 2019-10-25
?
莫回无

TA贡献1865条经验 获得超7个赞

在Lua中,基本数据结构是表,甚至全局环境_G都是表。因此,简单的枚举即可解决问题。


for k,v in pairs(_G) do

  print(k..' is '..type(v)..' and is equal to '..tostring(v))

end


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 322 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信