I am trying to make a subclass from a class with a @classmethod defined:
class Pet(object):
def __init__(self,animal):
self.animal = animal
@classmethod
def wild(cls,animal):
return cls('wild '+animal)
class Cat(Pet):
def __init__(self):
Pet.wild('cat')
if __name__ == '__main__':
print Cat().animal
This gives me the following error:
print Cat().animal
AttributeError: Cat instance has no attribute 'animal'
Probably I don't fully understand the concept of subclassing, I have been also trying to pass self to Pet.wild without much more success. Any help would be really appreciated!
EDIT
I try to explain what I want to do: I would like to initialize parentclass (or superclass?) Pet from the Cat subclass using the classmethod wild and not using __init__. Is this possible? Thank you