Car*_*ano 10 python polymorphism instance
我有一类动物和其他动物从它继承(eq Sheep,Wolf).
我想检查两个对象是否是同一个类,如果是,它应该创建同一个类的新对象,如果不是,它们就是在战斗.
if x and y same object:
#create new object
else:
#fight
Run Code Online (Sandbox Code Playgroud)
有没有比这更好的方法isinstance?
因为,会有更多的动物而不仅仅是2,我认为这样做效率不高:
if isinstance(x, Wolf)
# ...
Run Code Online (Sandbox Code Playgroud)
Mar*_*ler 14
你可以简单地使用
if type(x) == type(y):
fight()
Run Code Online (Sandbox Code Playgroud)
Python有一个类型系统,可以让你做到这一点.
编辑:正如Martijn所指出的那样,因为类型只在每个运行时存在一次,所以你可以使用is而不是==:
if type(x) is type(y):
fight()
Run Code Online (Sandbox Code Playgroud)