Python:询问两个对象是否相同class

Python: asking if two objects are the same class

我有一个 class 动物和继承自它的其他动物(e.q。羊,狼)。
我想检查两个对象是否相同 class 如果是这样,它应该创建相同的新对象 class 如果不是,他们正在战斗。

if x and y same object:
    #create new object
else:
    #fight

还有比isinstance更好的方法吗?
因为,会有更多的动物,而不仅仅是 2 个,我认为这样做效率不高:

if isinstance(x, Wolf)
    # ...

你可以简单地使用

if type(x) == type(y):
    fight()

Python 有一个类型系统可以让你做到这一点。

编辑:正如 Martijn 指出的那样,由于类型在每个运行时只存在一次,因此您可以使用 is 而不是 ==:

if type(x) is type(y):
    fight()

如果 obj1==obj2: 经过 别的: #do som