Intuitively this seems impossible, but here goes.
I am importing a class from a python module, where it has a static method that returns a new instance of the class and does some stuff to that instance, let's just call this method make_instance. I am trying to create a custom class with some overridden functionality that inherits from this class. Here comes the problem, there seems to be no way of overriding the make_instance in a way so that it returns my subclass instead of the super class.
Here's a minimal example:
# Note that I cannot edit this class, nor see the contents of this class, as it is from a python module
class SuperClass:
    @staticmethod
    def make_instance(number) -> SuperClass:
        obj = SuperClass()
        obj.number = number * 2
        return obj
class SubClass(SuperClass):
    @staticmethod
    def make_instance(number) -> SubClass:
        return super().make_instance(number) # Returns a SuperClass object
    # Additional functionality of the subclass
Is there potentially any way of achieving this? If not is there any other suggestions that could help with this kind of situation? Thanks.
