Я смотрю, чтобы проверить, являются ли две переменные одного типа в Python 3.x.Каков самый идеальный способ сделать это?
Возьмем следующий пример:
class A():
def __init__(self, x):
self.x = x
class B(A):
def __init__(self, x):
x += 5
super(B, self).__init__(x)
В идеале я хотел бы вернуть True
, если две переменные типа A
и B
сравниваются друг с другом.Вот некоторые потенциальные решения, которые не работают:
>>> a = A(5)
>>> b = B(5)
>>>
>>> type(a) is type(b)
False
>>> isinstance(a, type(b))
False
>>> isinstance(b, type(a))
True
Последнее не является идеальным, потому что, как видно из среднего примера, если проверяемый тип является подклассом типа переменной,False
возвращается.
Единственное решение, которое я пробовал, может охватить все базы здесь:
>>> isinstance(a, type(b)) or isinstance(b, type(a))
True
Есть ли лучший способ?