I have a class Animal and other animals inherit from it (e.q. Sheep, Wolf).
I want to check if two objects are the same class and if so, it should create new object of the same class and if they are not, they are fighting.
if x and y same object:
#create new object
else:
#fight
Is there a better method than isinstance
?
Because, there will be more animals than just 2 and I think it wouldn't be efficient to do it like this:
if isinstance(x, Wolf)
# ...
you can simply use
if type(x) == type(y):
fight()
Python has a type system that allows you to do exactly that.
EDIT: as Martijn has pointed out, since Types only exist once in every runtime, you can use is
instead of ==
:
if type(x) is type(y):
fight()