timmy zrewidował ten Gist 9 months ago. Przejdź do rewizji
3 files changed, 38 insertions
fibonacci_cache.py(stworzono plik)
| @@ -0,0 +1,11 @@ | |||
| 1 | + | import functools | |
| 2 | + | ||
| 3 | + | @functools.lru_cache(maxsize=5) | |
| 4 | + | def fibonacci(n): | |
| 5 | + | """計算費氏數列(具備快取功能)""" | |
| 6 | + | if n < 2: | |
| 7 | + | return n | |
| 8 | + | return fibonacci(n - 1) + fibonacci(n - 2) | |
| 9 | + | ||
| 10 | + | print(fibonacci(10)) # 快速計算 | |
| 11 | + | print(fibonacci.cache_info()) # 顯示快取統計 | |
my_decorator_example.py(stworzono plik)
| @@ -0,0 +1,17 @@ | |||
| 1 | + | import functools | |
| 2 | + | ||
| 3 | + | def my_decorator(func): | |
| 4 | + | @functools.wraps(func) | |
| 5 | + | def wrapper(*args, **kwargs): | |
| 6 | + | print(f"執行 {func.__name__} 函式") | |
| 7 | + | return func(*args, **kwargs) | |
| 8 | + | return wrapper | |
| 9 | + | ||
| 10 | + | @my_decorator | |
| 11 | + | def hello(): | |
| 12 | + | """這是一個測試函式""" | |
| 13 | + | print("Hello, world!") | |
| 14 | + | ||
| 15 | + | hello() | |
| 16 | + | print(hello.__name__) # 保持原函式名稱 | |
| 17 | + | print(hello.__doc__) # 保持原函式說明 | |
power_partial.py(stworzono plik)
| @@ -0,0 +1,10 @@ | |||
| 1 | + | import functools | |
| 2 | + | ||
| 3 | + | def power(base, exponent): | |
| 4 | + | return base ** exponent | |
| 5 | + | ||
| 6 | + | square = functools.partial(power, exponent=2) # 固定 `exponent=2` | |
| 7 | + | cube = functools.partial(power, exponent=3) # 固定 `exponent=3` | |
| 8 | + | ||
| 9 | + | print(square(5)) # 25 | |
| 10 | + | print(cube(4)) # 64 | |