我需要检查python模块以查找简单数据以及"用户定义的对象"。这里,我指的是非内置的对象(或函数或类),但是使用class / def语句定义或动态加载/生成。
请注意,有类似的问题,但他们询问"新风格用户定义的类"。我已经看过inspect
模块 - 我无法看到它如何起作用。
我可以导入一个模块,然后“走”'它,但我不知道将属性识别为简单类型的简单方法。例如 - 我怎么告诉0.是内置类型?这里:
>>> a=0.
>>> dir(a)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__'...
>>> type(a)
<class 'float'>
我是否必须知道所有标准对象的类,以确定模块/对象的属性是否为用户定义&#34;?
答案 0 :(得分:3)
尝试检查类型模块是否内置,通常适用于我。
例如:
a = 1.2
type(a).__module__ == "__builtin__"
答案 1 :(得分:0)
您可以在列表中添加您想要了解的所有模块:
导入sys
类Foo(对象): 通
def print_classes(): current_module = sys.modules [名称,modules1,module2 .......] 对于dir中的键(current_module): if isinstance(getattr(current_module,key),type): 打印(标号)
导入foo foo.print_classes()