首页 > 解决方案 > 比 dir() 更好的东西?

问题描述

Pythondir()很好,不要误会我的意思。但我想要一个列表,它实际上可以告诉我对象是什么类型的东西:方法、变量、继承的东西等。

据我所知,dir总是返回一个简单的字符串列表,没有说明对象是什么。我检查了文档dir()但没有看到任何获得更好信息的方法。

是否有任何其他软件包或工具可以做到这一点?

标签: pythondirectory

解决方案


我想要一个实际上告诉我对象是什么类型的列表:方法、变量、继承的东西等。

pyclbr内置模块可能对您有用,如果您对某些 *.py 文件中的类感兴趣,请将somefile.py内容设为

class MyClass():
    def parent_method(self):
        return None

class MyChildClass(MyClass):
    def child_method(self):
        return None    

然后

import pyclbr
objects = pyclbr.readmodule("somefile")
print(objects['MyChildClass'].super)
print(objects['MyChildClass'].methods)

输出

['MyClass']
{'child_method': 6}

解释:pyclbr不执行代码,而是从python源代码中提取信息。在上面的示例中,.super我们可以得出结论,它MyChildClass是第 6 行中定义方法的MyClassMyChildClass元素child_method


推荐阅读