| 1234567891011121314151617181920212223242526272829 |
- def cache(f):
- def wrapper(*args):
- if not hasattr(f, 'cache'):
- f.cache = {}
- key = args
- if key not in f.cache:
- f.cache[key] = f(*args)
- return f.cache[key]
- return wrapper
- @cache
- def fib(n):
- if n < 2:
- return n
- return fib(n-1) + fib(n-2)
- assert fib(32) == 2178309
- class A:
- def __init__(self, x):
- self._x = x
- @property
- def x(self):
- return self._x
-
- a = A(1)
- assert a.x == 1
|