获取Python包中的所有类名

康斯坦丁

我需要获取Python包中所有类的列表。一开始我得到了所有文件名(它工作正常,从stackoverflow中获取了它):

from os import listdir, getcwd
from os.path import isfile, join
mypath = getcwd()
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]

然后,我检查了所有文件,但无法正常工作:

for x in onlyfiles:
    for name, obj in inspect.getmembers(x):
        if inspect.isclass(obj):
            print obj

输出为:

<type 'str'>
....
<type 'str'>

但是,以下代码可以正常工作:

    for name, obj in inspect.getmembers(example.py):
        if inspect.isclass(obj):
            print obj

您能帮我弄清楚错误是什么吗?

马丁·彼得斯(Martijn Pieters)

inspect.getmembers()对象起作用,并且您正在传递字符串。Python不知道这些字符串包含文件名,或者会将这些文件名视为要导入的模块。

您必须导入文件inspect.getmembers()才能正常工作。因为您正在使用当前目录中的文件,所以您应该能够全部导入它们:

import importlib

for x in onlyfiles:
    module = importlib.import_module(x)
    for name, obj in inspect.getmembers(module):
        if inspect.isclass(obj):
            print obj

请注意,它inspect.getmembers()接受第二个参数,即谓词,可让您过滤该方法返回的内容。除了手动过滤之外,您还可以inspect.isclass()在此处用作谓词:

for x in onlyfiles:
    module = importlib.import_module(x)
    for name, obj in inspect.getmembers(module, inspect.isclass):
        print obj

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取Python包中的所有类名

来自分类Dev

从包中获取所有类

来自分类Dev

如何从给定包中获取所有类的列表

来自分类Dev

在python的类中获取所有常量

来自分类Dev

获取类属性中的所有类名

来自分类Dev

从包中获取所有子包

来自分类Dev

Python - 检索包中多个类下的所有函数

来自分类Dev

python硒获取ul类中的所有文本

来自分类Dev

Python获取列表中的所有文件名

来自分类Dev

Python,MonkeyRunner。如何在所有列表包中查找包名?

来自分类Dev

Java获取包中的所有文件

来自分类Dev

是否有内置方法从Python所有基类中获取所有__annotations__?

来自分类Dev

C#中的RegEx获取具有特定类名的所有SPAN标签

来自分类Dev

获取扩展特定类的所有类名

来自分类Dev

如何在Jquery中通过相同的类名获取所有父ID?

来自分类Dev

如何通过类名获取页面中的所有链接并存储

来自分类Dev

如何通过类名获取页面中的所有链接并存储

来自分类Dev

正则表达式获取数组中的所有 JS 类名

来自分类Dev

在解析中获取所有相关的类

来自分类Dev

从类中获取所有静态属性

来自分类Dev

获取yii中的所有表名

来自分类Dev

在Signalr中获取所有组名

来自分类Dev

如何在Python中获取类的类方法的所有名称

来自分类Dev

获取所有的值与硒相同的类名

来自分类Dev

在Python中获取异常类名?

来自分类Dev

package-info.java包注释会影响所有类,包括子包中的类

来自分类Dev

如何从python类中的实例变量中获取所有值的列表

来自分类Dev

如何在Python中获取当前目录中的所有文件名和文件大小

来自分类Dev

获取包中声明的所有变量和常量名称

Related 相关文章

热门标签

归档