GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python-patterns/decorator.py at master · ragbb/python-patterns Expand file tree/ Copy pathdecorator.pyMore file actions 44 lines (30 loc) · 887 Bytes / Copy pathdecorator.pyFile metadata and controls44 lines (30 loc) · 887 Bytes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 # http://stackoverflow.com/questions/3118929/implementing-the-decorator-pattern-in-python class foo_decorator(object): def __init__(self, decoratee): self._decoratee = decoratee def f1(self): print("decorated f1") self._decoratee.f1() def __getattr__(self, name): return getattr(self._decoratee, name) class undecorated_foo(object): def f1(self): print("original f1") def f2(self): print("original f2") @foo_decorator class decorated_foo(object): def f1(self): print("original f1") def f2(self): print("original f2") def main(): u = undecorated_foo() v = foo_decorator(u) # The @foo_decorator syntax is just shorthand for calling # foo_decorator on the decorated object right after its # declaration. v.f1() v.f2() if __name__ == '__main__': main() |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |