timmy / 使用 functools 進行函式工具操作

0 gustos
0 bifurcaciones
3 archivos
Última actividad 9 months ago
functools 模組提供多種函式工具,如記憶化(lru_cache)、部分應用(partial)和函式包裝(wraps),適用於提升效能、簡化回呼函式與裝飾器開發。
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)) # 快速計算

timmy / 使用 funcy 裝飾器檢查作業系統類型

0 gustos
0 bifurcaciones
1 archivos
Última actividad 10 months ago
這段 Python 程式碼利用 funcy 模組的裝飾器來 檢查目前作業系統,從而限制某些函式僅在特定平台上執行。具體來說,need_mac、need_linux、need_windows 與 need_unix 分別用來檢查是否在 macOS、Linux、Windows 或 Unix(macOS 或 Linux)系統上執行;函式 foo() 被 @need_unix 裝飾,僅允許在 Unix 系統上執行,而函式 bar() 則僅允許在 Windows 系統上執行。主程式透過 try-except 捕捉例外,若目前作業系統不符合要求,則輸出相應錯誤訊息。這樣的設計有助於確保平台專屬功能在正確的環境中執行,避免跨平台錯誤。
1 import platform
2 from funcy import decorator
3
4 @decorator
5 def need_mac(call):
6 """檢查系統是否為 macOS,若不是則拋出異常。"""
7 if platform.system() != "Darwin":
8 raise Exception("This functionality is only supported in macOS")
9 return call()
Siguiente Anterior