python assert的用法介紹(附程式碼)

不言
發布: 2019-04-01 10:38:28
轉載
23259 人瀏覽過

這篇文章帶給大家的內容是關於python assert的用法介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

python assert 句語格式及用法很簡單。通常程式在運行完之後拋出異常,使用assert可以在出現有異常的程式碼處直接終止運行。而不用等到程式執行完畢之後拋出異常。

python assert的作用

python assert如果發生異常就表示表達顯示為假。可以理解表達式回傳 值為假 時就會觸發異常。

assert語句的語法格式格式

assert expression [, arguments]
assert 表达式 [, 参数]
登入後複製

附加說明:assert也可以用於多個表達式的: assert expression1, expression2。
注意:表達式=false 時,則執行其後面的例外。

我們看幾個範例
1:單一表達式:

a = 1assert a < 0,
 &#39;出错了,a大于0 啊&#39;
 print(&#39;这里不会输出&#39;)
登入後複製

##輸出:

Traceback (most recent call last):
  File "main.py", line 3, in <module>    
  assert a < 0, &#39;出错了,a大于0 啊&#39;
  AssertionError: 出错了,a大于0 啊
登入後複製

2:多重表達式:

a = 1
b = -1
assert a > 0, b < 0
print(&#39;正常输出,表达式返回真了&#39;) # 输出:正常输出,表达式返回真了
登入後複製

##3:嘗試捕獲assert例外:

import traceback

try:
    assert a < 0
except AssertionError as aeeor:  # 明确抛出此异常
    # 抛出 AssertionError 不含任何信息,所以无法通过 aeeor.__str__()获取异常描述
    print(&#39;AssertionError&#39;, aeeor, aeeor.__str__())

    # 通过 traceback 打印详细异常信息
    print(&#39;traceback 打印异常&#39;)
    traceback.print_exc()
except:  # 不会命中其他异常
    print(&#39;assert except&#39;)

try:
    raise AssertionError(&#39;测试 raise AssertionError&#39;)
except AssertionError as aeeor:
    print(&#39;raise AssertionError 异常&#39;, aeeor.__str__())
登入後複製

輸出:

AssertionError
traceback 打印异常
Traceback (most recent call last):
  File "main.py", line 7, in <module>
    assert a < 0
AssertionError
raise AssertionError 异常 测试 raise AssertionError
登入後複製

4:函數呼叫拋出例外:

# 除法运算
def foo(value, divide):
    assert divide != 0
    return value / divide


print(&#39;4除以2 =&#39;, foo(4, 2))  # 执行成功
print(&#39;4除以0 =&#39;, foo(4, 0))  # 抛出异常
登入後複製

##輸出:

4除以2 = 2.0
Traceback (most recent call last):
  File "main.py", line 8, in <module>
    print(&#39;4除以0 =&#39;, foo(4, 0))  # 抛出异常
  File "main.py", line 3, in foo
    assert divide != 0
AssertionError
登入後複製

#透過上面幾個範例,相信大家也深刻理解aseert的用處了

總結: 表達式返回false 時。直接拋出異常終止繼續執行。 

【相關推薦:

python影片教學

以上是python assert的用法介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板