Как мне проверить (во время выполнения), является ли один класс подклассом другого?

Допустим, у меня есть класс Suit и четыре подкласса масти: Heart, Spade, Diamond, Club.

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

У меня есть метод, который принимает масть в качестве параметра, который является объектом класса, не экземпляр. Точнее, он может получить только одно из четырех значений: Heart, Spade, Diamond, Club. Как я могу сделать утверждение, которое гарантирует это? Примерно так:

def my_method(suit):
   assert(suit subclass of Suit)
   ...

Я использую Python 3.

174
задан Boann 4 March 2017 в 00:03
поделиться