在Python中,assert
是一個內置函數,用于在代碼中插入調試斷言
以下是如何使用assert
函數進行調試的示例:
def calculate_average(numbers):
assert len(numbers) > 0, "The list is empty, cannot calculate average."
return sum(numbers) / len(numbers)
numbers = [1, 2, 3, 4, 5]
print(calculate_average(numbers))
empty_numbers = []
print(calculate_average(empty_numbers)) # This will raise an AssertionError
在這個例子中,我們使用assert
來確保傳遞給calculate_average
函數的列表不為空。如果列表為空,將引發AssertionError
并顯示指定的錯誤消息。
def calculate_sum(a, b):
assert isinstance(a, (int, float)), "a must be a number"
assert isinstance(b, (int, float)), "b must be a number"
return a + b
result = calculate_sum(3, 5)
print(result)
result = calculate_sum("3", 5) # This will raise an AssertionError
在這個例子中,我們使用assert
來確保傳遞給calculate_sum
函數的參數是數字(整數或浮點數)。如果參數類型不正確,將引發AssertionError
并顯示指定的錯誤消息。
請注意,assert
語句僅在開發和測試階段有用。在生產環境中運行時,最好禁用斷言,因為它們可能會影響性能。要禁用斷言,可以在運行Python腳本時使用-O
選項,如下所示:
python -O your_script.py
或者,在Python代碼中設置環境變量:
import os
os.environ["PYTHONOPTIMIZE"] = "1"