Python使用lambda拋出異常實(shí)現(xiàn)方法解析
假設(shè)我們需要一個(gè)函數(shù)什么事都不干,只是拋出異常(在某些系統(tǒng)中有些handler就是干這事的),我們可以很直觀的寫出下面的代碼:
def func():
raise Exception("this is a exception")
就這么一個(gè)簡單的功能,我們更希望用lambda實(shí)現(xiàn),自然就寫下了下面的代碼:
lambda :raise Exception("this is a exception")
但遺憾的是這樣是不行的~~~會(huì)出現(xiàn)SyntaxError: invalid syntax的錯(cuò)誤。具體原因可以看Python Lambda
下面搜集實(shí)踐了幾種可用的奇技淫巧:
方法一
func = lambda: (_ for _ in ()).throw(Exception('this is an exception'))
方法二
如果不在乎異常信息是什么:
func = lambda: 1/0
不難理解,這個(gè)函數(shù)會(huì)拋出ZeroDivisionError。這種方法其實(shí)代表了一類,比如也可以寫成:
func = lambda : [][0]
這類實(shí)現(xiàn)就是在lambda后面寫一定會(huì)拋出異常的表達(dá)式
方法三
一種非常陰霸的方式,只適合python3.x
func = lambda : exec('raise(Exception("this is an exception"))')
方法四:
尚未看懂的
# python2.x
type(lambda:0)(type((lambda:0).func_code)(
1,1,1,67,'|\0\0\202\1\0',(),(),('x',),'','',1,''),{}
)(Exception())
或
# python3.x
type(lambda: 0)(type((lambda: 0).__code__)(
1,0,1,1,67,b'|\0\202\1\0',(),(),('x',),'','',1,b''),{}
)(Exception())
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python爬蟲之異常捕獲及標(biāo)簽過濾詳解
- python基礎(chǔ)之文件操作和異常處理
- Python運(yùn)行錯(cuò)誤異常代碼含義對照表
- Python Selenium異常處理的實(shí)例分析
- python上下文管理器異常問題解決方法
- python使用Windows的wmic命令監(jiān)控文件運(yùn)行狀況,如有異常發(fā)送郵件報(bào)警
- 詳解python中的異常和文件讀寫
- Python 獲取異常(Exception)信息的幾種方法
- Python用戶自定義異常的實(shí)現(xiàn)
- python 自定義異常和主動(dòng)拋出異常(raise)的操作
- 通過代碼實(shí)例了解Python異常本質(zhì)
- python裝飾器實(shí)現(xiàn)對異常代碼出現(xiàn)進(jìn)行自動(dòng)監(jiān)控的實(shí)現(xiàn)方法
- Python pip install之SSL異常處理操作
- 聊聊python中的異常嵌套
- Python基礎(chǔ)之語法錯(cuò)誤和異常詳解
相關(guān)文章
Python基于property實(shí)現(xiàn)類的特性操作示例
這篇文章主要介紹了Python基于property實(shí)現(xiàn)類的特性,結(jié)合實(shí)例形式分析了使用property實(shí)現(xiàn)類的特性相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06
PyQt5 QTable插入圖片并動(dòng)態(tài)更新的實(shí)例
今天小編就為大家分享一篇PyQt5 QTable插入圖片并動(dòng)態(tài)更新的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
python pandas庫中DataFrame對行和列的操作實(shí)例講解
今天小編就為大家分享一篇python pandas庫中DataFrame對行和列的操作實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
使用Python實(shí)現(xiàn)將list中的每一項(xiàng)的首字母大寫
今天小編就為大家分享一篇使用Python實(shí)現(xiàn)將list中的每一項(xiàng)的首字母大寫,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python中tkinter開發(fā)的常用29種功能用法總結(jié)
tkinter(Tk?interface)是Python的標(biāo)準(zhǔn)GUl庫,支持跨平臺的GUl程序開發(fā),本文為大家整理了tkinter開發(fā)時(shí)常用的29種功能用法,希望對大家有所幫助2023-05-05
Matlab之使用HeatMap實(shí)現(xiàn)畫熱圖
這篇文章主要介紹了Matlab之使用HeatMap實(shí)現(xiàn)畫熱圖方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
python實(shí)現(xiàn)打開手機(jī)app并點(diǎn)擊操作
這篇文章主要介紹了python實(shí)現(xiàn)打開手機(jī)app并點(diǎn)擊操作,本文分為兩部分一部分是打開應(yīng)用,第二部分是調(diào)式手機(jī)連接電腦,需要的朋友可以參考下2022-04-04
基于Python實(shí)現(xiàn)模擬三體運(yùn)動(dòng)的示例代碼
此前所做的一切三體和太陽系的動(dòng)畫,都是基于牛頓力學(xué)的,而且直接對微分進(jìn)行差分化,從而精度非常感人,用不了幾年就得撞一起去。所以本文來用Python重新模擬一下三體運(yùn)動(dòng),感興趣的可以了解一下2023-03-03

