class Singleton:
def __new__(cls, name):
print('cls is {}'.format(cls))
if not hasattr(cls, '_ins'):
cls._ins = super(Singleton, cls).__new__(cls, name)
return cls._ins
def __init__(self, name):
print('self is {}'.format(self))
self.name = name
def __repr__(self):
return "{}:{}".format(self.__class__.__name__, self.name)
p1 = Singleton('p1')
p2 = Singleton('p2')
print('p1==p2:%s' %(p1 is p2))
print(p1, p2)
def __new__(cls, name):
print('cls is {}'.format(cls))
if not hasattr(cls, '_ins'):
cls._ins = super(Singleton, cls).__new__(cls, name)
return cls._ins
def __init__(self, name):
print('self is {}'.format(self))
self.name = name
def __repr__(self):
return "{}:{}".format(self.__class__.__name__, self.name)
p1 = Singleton('p1')
p2 = Singleton('p2')
print('p1==p2:%s' %(p1 is p2))
print(p1, p2)
