我正在编写一个Python包,其中我有不同的Classes
,其中包含一个名为map
的常用方法。该方法总是返回一个函数,并且打算在另一个包的方法中使用。有没有办法列出我的包中名为map
的所有方法?
答案 0 :(得分:2)
你需要对这一点进行一些反思。您需要的步骤是加载给定模块的引用,获取类列表,然后检查每个类以确保它具有方法map
:
import sys, inspect
def map_classes(module_name):
for name, obj in inspect.getmembers(sys.modules[module_name]):
if inspect.isclass(obj):
try:
if callable(getattr(obj, 'map')):
yield name
except AttributeError:
pass
此方法将返回具有map
方法的模块中所有类的所有名称的生成器。请注意,如果它们具有map
属性,则不会返回该类的名称。
答案 1 :(得分:0)
您不需要inspect
包。你需要的一切都是内置的。
>>> import numpy as np
>>> for name, obj in np.__dict__.items():
... if hasattr(obj,"tolist"):
... print name, obj