我正在进行python shell中的计算.我想要的是Matlab样式列表输出,你可以看到所有已经定义到一个点的变量(所以我知道我使用了哪些名称,它们的值等等).
有办法吗,我该怎么做?
我正在使用pdb调试我的Python脚本,手册说我可以使用p变量命令在某个点打印指定变量的值.但是,如果我有很多变量,比如20个变量,我想追踪所有这些变量的价值呢?如何在不指定每个手动的情况下打印所有这些?以此脚本为例:
a = 1
b = 2
c = 3
Run Code Online (Sandbox Code Playgroud)
我可以使用pdb调试它并使用pa,b,c打印所有这些,如下所示:
$ python -m pdb test.py
> /media/test.py(1)<module>()
-> a = 1
(Pdb) n
> /media/test.py(2)<module>()
-> b = 2
(Pdb) n
> /media/test.py(3)<module>()
(Pdb) n
--Return--
> /media/test.py(3)<module>()->None
-> c = 3
(Pdb) p a, b, c
(1, 2, 3)
(Pdb)
Run Code Online (Sandbox Code Playgroud)
但我必须手动指定每个变量.有没有一种方法可以一次打印所有变量,而无需指定每一个变量?
Perl和PHP用反引号做到这一点.例如,
$output = `ls`;
Run Code Online (Sandbox Code Playgroud)
返回目录列表.类似的函数system("foo")返回给定命令foo的操作系统返回码.我在谈论一个将foo打印返回到stdout的变体.
其他语言如何做到这一点?这个函数有一个规范名称吗?(我要用"反击";但也许我可以用"syslurp"硬币.)
我想知道如何枚举 golang 中所有局部变量的名称和值。这样做的目的是有效调试 go 代码。
这个stackoverflow 上常用的线程没有提到golang。
我真的在寻找解决方案(我认为其他人也很好奇)。
非常感谢。
我试图迭代python脚本中设置的变量.我遇到了以下情况:
在第一个例子中:
#!/us/bin/python
foo1 = "Hello world"
foo2 = "bar"
foo3 = {"1":"a", "2":"b"}
foo4 = "1+1"
for name in dir():
myvalue = eval(name)
print name, "is", type(name), "and is equal to ", myvalue
Run Code Online (Sandbox Code Playgroud)
它列出了存储在内存中的所有变量.我想隔离我在脚本中创建的变量,而不是列出默认创建的系统变量.有没有办法做到这一点?
这个问题已被提出了很多问题,我尝试过每一个遇到的解决方案,但都没有取得任何成功.我正在尝试使用以下两行打印出每个变量及其值.
for name, value in globals():
print(name, value)
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误:Too many values to unpack
当我运行时:
for name in globals():
print(name)
Run Code Online (Sandbox Code Playgroud)
我只得到变量的名称.任何帮助,将不胜感激.
是否有任何参考指向当前范围,我查找了很多文章,但找不到答案,例如我想在当前范围内打印每个var的内容
for x in list(locals()):
print(x)
Run Code Online (Sandbox Code Playgroud)
但只给我这个,var的名字
__builtins__
__file__
__package__
__cached__
__name__
__doc__
Run Code Online (Sandbox Code Playgroud)
我不想要这样的代码
print(__builtins__)
print(__file__)
print(__package__)
print(__cached__)
print(__name__)
print(__doc__)
....
Run Code Online (Sandbox Code Playgroud) 是否可以检查当前 python 工作空间/环境中存在哪些变量或任何类的实例?我可以使用任何函数来列出它们吗?提前致谢!