斷言 assert 的藝術

2021-10-11 02:46:29 字數 660 閱讀 1644

最近讀了《程式設計珠璣》 簡單總結一下斷言方面的知識

斷言不屬於函式,它被定義為巨集,而且只在debug的時候起作用。如果斷言判斷為假,則程式中止,真則繼續執行。和if else類似,相當於if(假設成立) else 不過斷言會讓程式易讀,簡潔。所以通常情況我們採用斷言的方式判斷程式正確性。

編寫**時,我們總是會做出一些假設,斷言就是用於在**中捕捉這些假設。程式設計師相信在程式中的某個特定點該表示式值為真,可以在任何時候啟用和禁用斷言驗證,因此可以在測試時啟用斷言而在部署時禁用斷言。但是通常我們並不那麼做。因為某些專案使用預處理器定義斷言,於是可以在編譯階段處理斷言,而不會導致執行時的額外開銷。另一方面,圖靈獎獲得者tony hoare也曾經注意到,在測試時使用斷言,而在產品發布時將斷言關閉的程式設計師,就像是在岸上操練時穿著救生衣,而下海時將救生衣脫下的水手。

if else

if else屬於分支結構,只有在簡單的選擇過濾時我們才會採用if else。非常複雜的情況if else會顯得非常繁瑣。這時我們可以選擇採用try catch

try catch

try catch屬於順序結構,try可以解決我們不容易發現的異常,可以防止一些未知的錯誤。

try後面是正常執行的**,當try後**丟擲異常時,則會跳到catch處理異常資訊,這樣一來可以極大的提高程式的穩定性,防止一些我們不能預料的錯誤。

斷言assert總結

0.python的assert是用來檢查乙個條件,如果它為真,就不做任何事。如果它為假,則會丟擲asserterror並且包含錯誤資訊。assert語句是一種插入除錯斷點到程式的一種便捷的方式。1.使用斷言可以建立更穩定,品質更好且不易於出錯的 當需要在乙個值為false時中斷當前操作的話,可以使用...

assert(斷言)用法

斷言語句是將除錯斷言插入到程式中的一種方便方法。1.用法 assert condition讓程式來測試condition,如果condition為false就會生成乙個assertionerror。相當於 if not condition raise assertionerror 2.示例 asse...

斷言(assert) 學習

在我學習程式設計時,我一直認為斷言 assert 是個報錯函式,事實上,它居然是個巨集,並且作用並非 報錯 在經過對其進行一定了解之後,對其作用及用法有了一定的了解,斷言assert是定義在assert.h中的 巨集 只在debug版本起作用,而在release版本不起作用。用法 assert 表示...