通过以下两个文件a.py
#File a.py
import imp
import inspect
class A(object):
pass
if __name__ == "__main__":
mod = imp.load_source("B", "b.py")
for _, c in inspect.getmembers(mod, inspect.isclass):
print issubclass(c, A)
和
#b.py
from a import A
class B(A):
pass
如果在a.py
中找到的班级是b.py
的子类,我如何签入档案A
。
您在a.py
中看到的尝试会导致打印两个False
。由于B
是A
的子类,我如何正确检查它?
答案 0 :(得分:2)
我找到了以下解决方案:
#File a.py
import imp
import inspect
class A(object):
pass
if __name__ == "__main__":
mod = imp.load_source("B", "b.py")
#self import
import a
for _, c in inspect.getmembers(mod, inspect.isclass):
print issubclass(c, a.A)
但我仍然不知道它为什么会起作用(而你的解决方案却没有)