我已经看到了以下问题,但它并没有完全让我到达我想要的位置:How can I get a list of all classes within current module in Python?
特别是,我不想要导入的类,例如如果我有以下模块:
from my.namespace import MyBaseClass
from somewhere.else import SomeOtherClass
class NewClass(MyBaseClass):
pass
class AnotherClass(MyBaseClass):
pass
class YetAnotherClass(MyBaseClass):
pass
如果我使用 clsmembers = inspect.getmembers(sys.modules[__name__], inspect.isclass)
就像链接问题中接受的答案所暗示的那样,它将返回 MyBaseClass
和 SomeOtherClass
以及本模块中定义的 3 个。
我怎样才能只获得 NewClass
、AnotherClass
和 YetAnotherClass
?
最佳答案
检查类的 __module__
属性以找出它是在哪个模块中定义的。
关于python - 如何获取模块中定义但未导入的所有类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5520580/