Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以类似于Chrome开发控制台中JS对象的方式检查Python对象?_Python - Fatal编程技术网

如何以类似于Chrome开发控制台中JS对象的方式检查Python对象?

如何以类似于Chrome开发控制台中JS对象的方式检查Python对象?,python,Python,在Chrome开发控制台中,可以键入变量的名称,输出是对象的可视化和交互式表示。(在JavaScript中,对象类似于字典,所以这很简单。) 我希望在Python中具有相同的功能。我很震惊,我找不到类似的东西。例如,在IPython GUI控制台中,当我想检查变量diff时,在本例中,我得到的是它的类型: In [5]: diff Out[5]: <_pygit2.Diff at 0x1a69930> [5]中的:差异 出[5]: 此命令检查变量,但复杂对象的输出混乱(此处输出不

在Chrome开发控制台中,可以键入变量的名称,输出是对象的可视化和交互式表示。(在JavaScript中,对象类似于字典,所以这很简单。)

我希望在Python中具有相同的功能。我很震惊,我找不到类似的东西。例如,在IPython GUI控制台中,当我想检查变量
diff
时,在本例中,我得到的是它的类型:

In [5]: diff
Out[5]: <_pygit2.Diff at 0x1a69930>
[5]中的
:差异
出[5]:
此命令检查变量,但复杂对象的输出混乱(此处输出不完整):

[10]中的
:inspect.getmembers(diff)
输出[10]:[(“类”),(“delattr”,),(“文档”,“差异对象”),(“格式”,),(“获取属性”,(…)
我认为当语言没有类型系统时,实时自省是非常有用的。也许这个功能只在特殊的Python IDE中可用

显示如何在Chrome中执行此操作:


在图片上,您可以看到变量
f
的简介。它是一个类型为
Form
的对象,您可以单击它并查看其属性(例如
\u meetingTimeFrom
)及其值,您可以进一步单击属性以检查它们,您可以查看对象的方法(例如,field
\uuu proto\uu
,这可能是一种在JavaScript中查看对象方法的方法)。

如果您只想以可读的方式列出属性,
pprint.pprint
是您的朋友:

from pprint import pprint
from inspect import getmembers

class X:
    def __init__(self, x, y):
        self.x = x
        self.y = y

x = X([42] * 5, [True] * 15)

pprint(getmembers(x))
pprint(vars(x))
如果您对此GUI感兴趣,请查看 。它使用Python标准中的inspect模块 用于下面的对象内省的库


通过titusjan

你可以得到
\uuuu repr\uuuuuu
,这不一定只是类型(这是默认值)。试试例如
dir(thing)
。你可以迭代
diff
。通过这行:
list(diff)
@GeorgePetrov我不想迭代任何东西,我想要一个交互式自省!)@jonrsharpe感谢您的更正,但我的观点是,我没有得到对象本身(其视觉表现)…这是其视觉表现。虽然这个答案对我来说足够了,但谢谢您,我想再次发布一个链接,该链接位于我的问题下方的评论中,其他有趣的答案在哪里:
from pprint import pprint
from inspect import getmembers

class X:
    def __init__(self, x, y):
        self.x = x
        self.y = y

x = X([42] * 5, [True] * 15)

pprint(getmembers(x))
pprint(vars(x))