是否有一种方法可以以编程方式确定对象的结构/模型,其组成部分,如何对其进行迭代,操纵和转换,分解和构建备份?
试错是很好的老师。我每天上课。但是在这里,我正在寻找一种“更聪明地”工作或至少有所不同的方法。
一些背景知识:最近,我花了太多时间错误地处理了一个熊猫groupby
对象,因为我不了解它所构成的构建块部件和类型。我没有正确处理在groupby
对象上进行迭代时返回的元组。现在,我对该特定对象有了更好的理解,但还远远不够。例如,一个groupby
obj在迭代时分解为“ params
”和“ table
”。 table
又由index
和rows
组成。但是我仍然不确定如何处理rows
:它们是由什么组成或分解成什么。 This post包含重现此问题的代码:请参阅原始文章底部的“编辑2”。
但这是一个特例;我的问题更笼统。我的问题是,如果我还不了解python对象/类型的结构或“模型”,如何查询该对象以文本方式显示此信息,或者甚至可能以图形方式显示此信息?
修改:
出于探索和学习的目的,下面我尝试通过str
循环在str
对象上运行每个for
方法。 meth
obj在循环的前两行(例如__add__
和__class__
)中被正确解释,但是当我尝试运行{{ 1}}。我该如何解决?
输入:
meth
输出:
obj.meth
输入:
obj = 'my_string'
object_methods = [method_name for method_name in dir(obj)
if callable(getattr(obj, method_name))]
print(len(object_methods))
print(object_methods)
输出:
77
['__add__', '__class__', . . ., 'upper', 'zfill']