The output of:
class Dog():
def get_class():
return __class__
class Cat():
def get_class():
return __class__
print(Dog.get_class())
print(Cat.get_class())
is:
<class '__main__.Dog'>
<class '__main__.Cat'>
I want to DRY up my code with a subclass. But the output of:
class BaseClass():
def get_class():
return __class__
class Dog(BaseClass):
pass
class Cat(BaseClass):
pass
print(Dog.get_class())
print(Cat.get_class())
is
<class '__main__.BaseClass'>
<class '__main__.BaseClass'>
How do I change the code in the second case to obtain the same output as the first case?
you are almost there :
class BaseClass:
@classmethod
def get_class(cls):
return cls
class Dog(BaseClass):
pass
class Cat(BaseClass):
pass
print(Dog.get_class())
print(Cat.get_class())
<class '__main__.Dog'>
<class '__main__.Cat'>
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments