如何在python中枚举嵌套类?
发布时间:2020-12-20 11:47:53 所属栏目:Python 来源:网络整理
导读:如何实现枚举嵌套类的函数? class A(object): class B(object): pass class C(object): passdef enumerate_nested_classes(_class): return () # need proper implementation insteadassert set(enumerate_nested_classes(A)) == {A.B,A.C} 解决方法 您可以
如何实现枚举嵌套类的函数?
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} 解决方法
您可以使用下一个代码:
import types class A(object): class B(object): pass class C(object): pass def enumerate_nested_classes(_class): return [getattr(_class,n) for n in dir(_class) if not n.startswith('__') and isinstance(getattr(_class,n),(type,types.ClassType))] assert enumerate_nested_classes(A) == [A.B,A.C] 并打印enumerate_nested_classes(A)打印[< class'__main __.B'>,< class'__main __.C'>] NB. dir(_class)结果列表按字母顺序排序,因此当使用assert enumerate_nested_classes(A)== [A.B,A.C]时,最好使用:assert sorted(enumerate_nested_classes(A))== sorted([A.B,A.C]). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |