How do I check (at runtime) if one class is a subclass of another?

前端 未结 9 1799
忘了有多久
忘了有多久 2020-11-28 05:40

Let\'s say that I have a class Suit and four subclasses of suit: Heart, Spade, Diamond, Club.

class Suit:
   ...
class Heart(Suit):
   ...
class Spade(Suit):         


        
9条回答
  •  北荒
    北荒 (楼主)
    2020-11-28 06:06

    According to the Python doc, we can also use class.__mro__ attribute or class.mro() method:

    class Suit:
        pass
    class Heart(Suit):
        pass
    class Spade(Suit):
        pass
    class Diamond(Suit):
        pass
    class Club(Suit):
        pass
    
    >>> Heart.mro()
    [, , ]
    >>> Heart.__mro__
    (, , )
    
    Suit in Heart.mro()  # True
    object in Heart.__mro__  # True
    Spade in Heart.mro()  # False
    

提交回复
热议问题