Python assert 斷言使用方式
使用 assert 所謂斷言(Assertion),指的是程式進行到某個時間點,斷定其必然是某種狀態,具體而言,也就是斷定該時間點上,某變數必然是某值,或某物件必具擁有何種特性值。 如果你在Python中要進行斷言測試,則可以使用assert陳述句: assert <test>, <message> test是狀態測試,而message是斷言失敗時所要呈現訊息。例如,在 定義類別 中定義的Account類別,存款的時候不能提負數,提款的時候也不能是負數(真正的提款機也不會有負數鍵),所以呼叫deposit()或withdraw()時傳入的值必然是大於0,這時你可以使用斷言檢查: class Account: def __init__(self, number, name): self.number = number self.name = name self.balance = 0 def deposit(self, amount): assert amount > 0, '必須是大於 0 的正數' self.balance += amount def withdraw(self, amount): assert amount > 0, '必須是大於 0 的正數' if amount <= self.balance: self.balance -= amount else: raise RuntimeError('balance not enough') a = Account('E122', 'Justin') a.deposit(-1) # AssertionError: 必須是大於 0 的正數 類似的,在一個if判斷中,如果x大於0,就執行if區塊,否則x必須是等於0,這時也可使用斷言測試: if x > 0: # do some ... else: assert x == 0