当前位置:  开发笔记 > 编程语言 > 正文

如何在python中枚举嵌套类?

如何解决《如何在python中枚举嵌套类?》经验,为你挑选了1个好方法。

如何实现枚举嵌套类的函数?

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}

alecxe.. 6

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']

请注意,not name.startswith("__")需要检查以排除__class__- 我怀疑有更简单和更pythonic的方式这样做,如果有人会指出这一点,将不胜感激.



1> alecxe..:

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']

请注意,not name.startswith("__")需要检查以排除__class__- 我怀疑有更简单和更pythonic的方式这样做,如果有人会指出这一点,将不胜感激.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有