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
我有一个 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