Python:询问两个对象是否是同一个类

时间:2015-06-06 12:22:34

标签: python polymorphism instance

我有一类Animal和其他动物继承它(eq Sheep,Wolf)。
我想检查两个对象是否是同一个类,如果是,它应该创建同一个类的新对象,如果他们不是,他们就是在战斗。

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

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

if isinstance(x, Wolf)
    # ...

1 个答案:

答案 0 :(得分:11)

你可以简单地使用

List<String> emails = partnerEmails.isEmpty()
                    ? Collections.emptyList()
                    : Arrays.asList(partnerEmails.split("\\s*,\\s*"));
selectedEmails.addAll(emails);

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

编辑:正如Martijn指出的那样,由于类型只在每个运行时存在一次,因此您可以使用if type(x) == type(y): fight() 代替is

==