python中raise和assert的區別
一、使用raise拋出異常
python可以自動觸發異常,raise(內置函數)的定義為顯示的拋出異常,用戶可以使用raise進行判斷,顯式的引發異常,raise執行后程序將不再向下執行。
式例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = '40kuai'
books_dict = {'name':'python','pages':390}
key = input('查看屬性:')
if key in books_dict:
print(books_dict[key])
else:
raise KeyError
# 當要查詢的屬性不在字典中時會觸發異常
raise也可以用戶創建自定義的異常
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = '40kuai'
class helei(Exception): # 繼承 Exception
def __init__(self, msg):
self.message = msg
def __str__(self): # 被print調用時執行,可以不寫
return self.message
if __name__ == '__main__':
try:
raise helei('我的異常') # 觸發異常
except helei as e:
print(e)
二、assert使用
assert語句用於檢測某個條件表達式是否為真。assert語句又稱為斷言語句,即assert認為檢測的表達式永遠為真。
斷言用來指定某一操作必須為真。也可以在腳本執行時加上python -O 參數來跳過assert檢測。
可以使用assert False 來顯示代碼編寫未完成
