Столкнулся я с задачкой реализовать патерн Singelton на языке программирования Python 3.1
Единственное рабочее решение я нашел на stackoverflow. Его то я вам и покажу. В питоне нельзя скрыть конструктор, по этому предлагается переопределить метод __new__, который вызывается каждый раз при создании обьекта.
Единственное рабочее решение я нашел на stackoverflow. Его то я вам и покажу. В питоне нельзя скрыть конструктор, по этому предлагается переопределить метод __new__, который вызывается каждый раз при создании обьекта.
class Singleton(object):
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
return cls._instance
if __name__ == '__main__':
s1=Singleton()
s2=Singleton()
if(id(s1)==id(s2)):
print "Same"
else:
print "Different"
Этот комментарий был удален автором.
ОтветитьУдалить