So there is object.__new__(cls)
and super().__new__(cls)
functions could be used to create instance, but could I use type(name, bases, dict)(*args, **kwargs)
to create instance?
class Singleton(object):
instance = None
def __init__(self, *args, **kwargs):
pass
def __new__(cls, *args, **kwargs):
if isinstance(cls.instance, type(None)):
mcls = cls.__class__
cls.instance = type(mcls.__name__, mcls.__bases__, dict(cls.__dict__))(*args, *kwargs)
return cls.instance
s = Singleton()
print(s)