2013-03-16 50 views
0

在所有页面搜索获得给定类的子类的列表,我需要的是会得到所有的“py”为指定目录结束,然后在文件列表的功能,对于每个文件,找出该文件中是否有给定类的子类。如果有,则将该类的一个实例添加到列表中。如果不是,则继续,然后在完成时返回列表。有人可以帮助我吗?Python函数从目录中

+0

@Asad请原谅我混淆的语言。 > _ <我想知道如何做到这一点,而不是如果可以做到。我编辑了我的问题来反映这一点。 – ceradon 2013-03-16 20:34:14

+1

您可能不需要手动执行此操作,因为新样式类保留了它们的直接子类。参见['__subclasses__'](http://docs.python.org/2/library/stdtypes.html?highlight=__subclasses__#class.__subclasses__)。 – martineau 2013-03-16 20:35:39

+0

@martineau我在某处读到__subclasses__只返回直接继承者或同一个文件中的继承者,这是一个问题,因为继承者会遍布整个地方。 – ceradon 2013-03-16 20:40:15

回答

2

使用imp模块。通过load_moduleload_source,您可以将.py文件动态加载到模块对象中。使用dir来查看该模块中的内容,并且还有issubclass函数来检查两个类之间是否存在继承。