diff --git a/sessions/700.design-patterns-in-depth/725.singleton/740.code_example.py b/sessions/700.design-patterns-in-depth/725.singleton/740.code_example.py new file mode 100644 index 0000000..4622f4e --- /dev/null +++ b/sessions/700.design-patterns-in-depth/725.singleton/740.code_example.py @@ -0,0 +1,25 @@ +class SingletonMeta(type): + + _instance = None + def __call__(self, *args, **kwargs): + if self._instance is None: + self._instance = super().__call__() + return self._instance + +class Singleton(metaclass=SingletonMeta): + + def some_logic(self): + pass + + + +if __name__ == "__main__": + + s1 = Singleton() + s2 = Singleton() + + if id(s1) == id(s2): + print('Singleton works') + else: + print('singleton failed') +