started work on decorator pattern.

This commit is contained in:
tylerlaberge
2016-08-17 00:11:01 -04:00
parent 8a9040dd1a
commit 6eaf09d9da
2 changed files with 134 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
from functools import partial
from abc import ABCMeta, abstractmethod
class Decorator(object, metaclass=ABCMeta):
def __get__(self, instance, owner):
return partial(self.__call__, instance)
@abstractmethod
def __call__(self, *args, **kwargs):
pass
class DecoratorSimple(Decorator, metaclass=ABCMeta):
def __init__(self, func):
self.func = func
class DecoratorArgs(Decorator, metaclass=ABCMeta):
@abstractmethod
def __init__(self, *args, **kwargs):
pass
class Wrap(DecoratorSimple):
def __call__(self, instance, func, *args, **kwargs):
return lambda: self.func(instance, func, *args, **kwargs)