Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Instantiate subclass from superclass

Tags:

python

I need to instantiate a subclass from the superclass.

class Superclass(object):
    @staticmethod
    def get_instance():
        #This should return an instance of subclass1 or subclass2

class Subclass1(Superclass):
    pass
class Subclass2(Superclass):
    pass

I want to write:

Subclass1.get_instance()

and obtain an instance of Subclass1, and same for Subclass2

like image 716
LtWorf Avatar asked Dec 04 '25 17:12

LtWorf


1 Answers

use @classmethod instead of @staticmethod :

class Superclass(object):
    @classmethod
    def get_instance(cls):
        #This should return an instance of subclass1 or subclass2
        return cls()

class Subclass1(Superclass):
    pass
class Subclass2(Superclass):
    pass
like image 152
MBarsi Avatar answered Dec 06 '25 08:12

MBarsi