Uživatelské nástroje

Nástroje pro tento web


navody:python_design_pattern

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
navody:python_design_pattern [2014/04/09 00:21]
jules [Singleton]
navody:python_design_pattern [2014/04/09 10:14] (aktuální)
jules [Singleton]
Řádek 2: Řádek 2:
 ===== Singleton ===== ===== Singleton =====
 <code python> <code python>
-class Fooobject ​): +class Singleton(type): 
-    ​_iInstance ​None +    ​_instances ​{} 
-  +    def __call__(cls, *args, **kwargs): 
-    ​class Singleton:​ +        if cls not in cls._instances
-        ​def __init__(self): +            ​cls._instances[cls] ​super(Singleton, ​cls).__call__(*args**kwargs
-            self.foo = None +        return ​cls._instances[cls]
-  +
-    def __init__(self): +
-        if Foo._iInstance is None+
-            ​Foo._iInstance ​Foo.Singleton() +
-  +
-  +
-    def __getattr__(selfaAttr)+
-        return getattr(self._iInstance, aAttr) +
-  +
-  +
-    def __setattr__(self, aAttraValue): +
-        return ​setattr(self._iInstance, aAttr, aValue) +
-</​code>​+
  
 +class Setup(metaclass=Singleton):​
 +    pass
 +</​code>​
navody/python_design_pattern.txt · Poslední úprava: 2014/04/09 10:14 autor: jules