如何实现枚举嵌套类的函数?
class A(object):
class B(object):
pass
class C(object):
pass
def enumerate_nested_classes(_class):
return () # need proper implementation instead
assert set(enumerate_nested_classes(A)) == {A.B, A.C}
最佳答案
inspect.getmembers()
连同inspect.isclass()
在这里应该有所帮助:
classes = [name for name, member_type in inspect.getmembers(A)
if inspect.isclass(member_type) and not name.startswith("__")]
print(classes) # prints ['B', 'C']
请注意,不是 name.startswith("__")
检查是排除 __class__
所必需的 - 我怀疑有一种更简单和更 pythonic 的方法来这样做,如果有人能指出这一点,我们将不胜感激。
关于python - 如何枚举python中的嵌套类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34456049/