In [ ]:
def Singleton(cls):
instances = {}
def wrapper(*args, **kwargs):
if instances.get(cls) is None:
instance = cls(*args, **kwargs)
instances[cls] = instance
return instance
else:
return instances[cls]
return wrapper
@Singleton
class Punkt():
def __init__(self, x, y):
self.x = x
self.y = y
@Singleton
class CustomStruct():
def __init__(self, x, y, data_vector):
self.x = x
self.y = y
self.data_vector = data_vector
In [ ]:
a = Punkt(1, 2)
b = Punkt(2, 3)
print(a, vars(a), id(a))
print(b, vars(b), id(b))
c = CustomStruct(5, 10, [1, 2, 3])
d = CustomStruct()
print(c, vars(c), id(c))
print(d, vars(d), id(d))