我开始使用Python编写各种项目的代码(包括Django web开发和Panda3D游戏开发)。
为了帮助我理解发生了什么,我想基本上“看看”Python对象内部,看看它们是如何运行的——比如它们的方法和属性。
假设我有一个Python对象,我需要什么来打印它的内容?这可能吗?
我开始使用Python编写各种项目的代码(包括Django web开发和Panda3D游戏开发)。
为了帮助我理解发生了什么,我想基本上“看看”Python对象内部,看看它们是如何运行的——比如它们的方法和属性。
假设我有一个Python对象,我需要什么来打印它的内容?这可能吗?
当前回答
有一个很酷的工具叫objexplore。下面是一个简单的例子,关于如何在pandas数据框架上使用它的探索功能。
import pandas as pd
df=pd.read_csv('https://storage.googleapis.com/download.tensorflow.org/data/heart.csv')
from objexplore import explore
explore(df)
将在你的shell中弹出以下内容:
其他回答
如果你对此感兴趣,可以看看objbrowser。它使用Python标准库中的inspect模块进行下面的对象内省。
首先,阅读原文。
其次,使用dir()函数。
检查代码的两个好工具是:
IPython。一个允许你使用制表符完成检查的python终端。 使用PyDev插件的Eclipse。它有一个优秀的调试器,允许您在给定的位置中断,并通过浏览所有变量作为树来检查对象。您甚至可以使用嵌入式终端在该位置尝试编码或键入对象并按'。,让它为你提供代码提示。
有一个很酷的工具叫objexplore。下面是一个简单的例子,关于如何在pandas数据框架上使用它的探索功能。
import pandas as pd
df=pd.read_csv('https://storage.googleapis.com/download.tensorflow.org/data/heart.csv')
from objexplore import explore
explore(df)
将在你的shell中弹出以下内容:
你可以在shell中使用dir()列出对象的属性:
>>> dir(object())
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
当然,还有inspect模块:http://docs.python.org/library/inspect.html#module-inspect