# Implementacao de singleton baseada em classe interna e
# delegacao atraves de alteracao em __getattr__
class Singleton1:
class _Singleton1:
def __init__(self, arg):
self.val = arg
def __str__(self):
return `self` + self.val
_instance = None
def __init__(self, arg):
if not Singleton1._instance:
Singleton1._instance = Singleton1._Singleton1(arg)
else:
Singleton1._instance.val = arg
def __getattr__(self, name):
return getattr(Singleton1._instance, name)