簡體   English   中英

類子類字典

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM