[英]Dictionary of class subclasses
是否有辦法使所有類繼承的字典?
就像是
class MagikClass :
pass
class A(MagikClass) :
__name__ = "A"
print magik_dict # -> { "A": A }
這是一個向每個類添加_derived
屬性的解決方案,其中包含該類的派生類:
class Meta(type):
def __new__(cls, name, bases, dict_):
new_class = type.__new__(cls, name, bases, dict_)
new_class._derived = {}
if isinstance(bases[0], Meta):
bases[0]._derived[name] = new_class
return new_class
class Magic(object):
__metaclass__ = Meta
class A(Magic):
pass
class B(Magic):
pass
print Magic._derived
版畫
{'A': <class '__main__.A'>, 'B': <class '__main__.B'>}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.