44_decorator.py 517 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. from functools import cache
  2. @cache
  3. @cache
  4. @cache
  5. def fib(n):
  6. if n < 2:
  7. return n
  8. return fib(n-1) + fib(n-2)
  9. assert fib(32) == 2178309
  10. class A:
  11. def __init__(self, x):
  12. self._x = x
  13. @property
  14. def x(self):
  15. return self._x
  16. a = A(1)
  17. assert a.x == 1
  18. class B:
  19. def __init__(self):
  20. self._x = 1
  21. def _x_setter(self, v):
  22. self._x = v
  23. B.x = property(
  24. lambda self: self._x,
  25. B._x_setter
  26. )
  27. b = B()
  28. assert b.x == 1
  29. b.x = 2
  30. assert b.x == 2