我希望您能够在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)
理想情况下,如果两个类型为
A
和 B
的变量相互比较,则希望返回True
。以下是一些不起作用的潜在解决方案:>>> 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
有更好的方法吗?
class C(A): ...
,那么该类型的实例c
与a
是“相同类型”,对吗?但它是否也与b
兼容?最终,所有类都是object
的子类,因此您总是可以找到某些共同基础。 - jdehesaa == b
是true吗? - chepner