仅返回类、对象、函数和常量组合的 Python 列表中的类名
python 191
原文标题 :Return only Class names from a Python list of combination of classes, objects, functions and constants
我有一个包含各种类、对象、函数和常量的混合 Python 列表。我只想从该列表中获取类作为输出。例如,
my_list = [Class1, Class2, obj1, func1, obj2, Class3, func2]
我想要类似的东西;
get_classes(my_list)
所以输出是;
[Class1, Class2, Class3]
任何帮助表示赞赏。谢谢你。
回复
我来回复-
Samwise 评论
所有类都是
type
的实例,所以你可以这样做:def get_classes(my_list): return [i for i in my_list if isinstance(i, type)]
2年前 -
aaossa 评论
您可以使用
inspect.isclass
,根据文档:如果对象是一个类,则返回 True,无论是内置的还是在 Python 代码中创建的。
因此,您的函数可以使用如下的
inspect.isclass
函数来使用列表推导:def get_classes(my_list): return [value for value in my_list if inspect.isclass(value)]
注意
inspect.isclass
在内部使用isinstance
。您可以在 GitHub 中查看源代码来确认它:def isclass(object): """Return true if the object is a class. Class objects provide these attributes: __doc__ documentation string __module__ name of module in which this class was defined""" return isinstance(object, type)
2年前 -
Alvin Lee 评论
尝试查看 python 中的 isinstance() 函数。
2年前