timmy / 使用 inspect 來獲取函式與類別的詳細資訊
0 mi piace
0 forks
3 files
Ultima volta attivo 9 months ago
inspect 模組允許在執行時動態獲取函式、類別、模組的結構與資訊,適用於 除錯、程式碼分析、自動文件生成、動態調試 等場景。
| 1 | import inspect |
| 2 | |
| 3 | def example_function(a: int, b: str = "default") -> bool: |
| 4 | """示範函式,回傳 True 或 False""" |
| 5 | return bool(a) |
| 6 | |
| 7 | # 獲取函式參數 |
| 8 | signature = inspect.signature(example_function) |
| 9 | print(f"函式簽名: {signature}") |
timmy / 使用 traceback 來捕捉與記錄異常
0 mi piace
0 forks
1 files
Ultima volta attivo 9 months ago
traceback 模組可用於捕捉、格式化和記錄 Python 例外發生時的詳細資訊,有助於錯誤診斷與日誌記錄。
| 1 | import traceback |
| 2 | |
| 3 | def faulty_function(): |
| 4 | return 1 / 0 # 這將觸發 ZeroDivisionError |
| 5 | |
| 6 | try: |
| 7 | faulty_function() |
| 8 | except Exception as e: |
| 9 | error_message = f"Exception occurred: {str(e)}" |
| 10 | stack_trace = traceback.format_exc() |
Ultima volta attivo 10 months ago
此程式使用 pretty_errors 改善錯誤輸出,並使用 icecream (ic) 進行簡潔的除錯訊息輸出,方便開發人員快速定位錯誤與分析變數內容,提高程式除錯效率。
| 1 | import pretty_errors |
| 2 | from icecream import ic |
| 3 | |
| 4 | |
| 5 | def configure_pretty_errors() -> None: |
| 6 | """ |
| 7 | 配置 pretty_errors 庫,用於更好的錯誤輸出。 |
| 8 | |
| 9 | 不需要任何參數。 |
| 10 | """ |
timmy / 使用 icecream 進行偵錯並透過上下文管理控制輸出
0 mi piace
0 forks
1 files
Ultima volta attivo 10 months ago
這段 Python 程式碼 使用 contextlib.contextmanager 來建立一個 自訂的上下文管理器 (ic_disabled()),用於 暫時停用 icecream (ic) 的輸出,並在 離開上下文後復原原始狀態。
| 1 | # 引用python內建模組contextlib中的contextmanager |
| 2 | from contextlib import contextmanager |
| 3 | |
| 4 | # 將icecream模組簡稱為ic |
| 5 | from icecream import ic # 引用icecream模組 |
| 6 | |
| 7 | # 設定icecream的輸出選項,包含上下文 |
| 8 | ic.configureOutput(includeContext=True) |
| 9 | |
| 10 | # 定義ic_disabled函式為一個上下文管理器 |
timmy / 使用 pretty_errors 美化 Python 錯誤訊息
0 mi piace
0 forks
1 files
Ultima volta attivo 10 months ago
此程式透過 pretty_errors 讓錯誤訊息更易讀,並觸發除零錯誤 (ZeroDivisionError),適用於開發除錯與錯誤診斷。
| 1 | import pretty_errors |
| 2 | |
| 3 | |
| 4 | def division_by_zero(): |
| 5 | 1 / 0 |
| 6 | |
| 7 | |
| 8 | if __name__ == "__main__": |
| 9 | division_by_zero() |
Più nuovi
Più vecchi