Python使用lambda拋出異常實現方法解析
假設我們需要一個函數什么事都不干,只是拋出異常(在某些系統(tǒng)中有些handler就是干這事的),我們可以很直觀的寫出下面的代碼:
def func():
raise Exception("this is a exception")
就這么一個簡單的功能,我們更希望用lambda實現,自然就寫下了下面的代碼:
lambda :raise Exception("this is a exception")
但遺憾的是這樣是不行的~~~會出現SyntaxError: invalid syntax的錯誤。具體原因可以看Python Lambda
下面搜集實踐了幾種可用的奇技淫巧:
方法一
func = lambda: (_ for _ in ()).throw(Exception('this is an exception'))
方法二
如果不在乎異常信息是什么:
func = lambda: 1/0
不難理解,這個函數會拋出ZeroDivisionError。這種方法其實代表了一類,比如也可以寫成:
func = lambda : [][0]
這類實現就是在lambda后面寫一定會拋出異常的表達式
方法三
一種非常陰霸的方式,只適合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())
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- python爬蟲之異常捕獲及標簽過濾詳解
- python基礎之文件操作和異常處理
- Python運行錯誤異常代碼含義對照表
- Python Selenium異常處理的實例分析
- python上下文管理器異常問題解決方法
- python使用Windows的wmic命令監(jiān)控文件運行狀況,如有異常發(fā)送郵件報警
- 詳解python中的異常和文件讀寫
- Python 獲取異常(Exception)信息的幾種方法
- Python用戶自定義異常的實現
- python 自定義異常和主動拋出異常(raise)的操作
- 通過代碼實例了解Python異常本質
- python裝飾器實現對異常代碼出現進行自動監(jiān)控的實現方法
- Python pip install之SSL異常處理操作
- 聊聊python中的異常嵌套
- Python基礎之語法錯誤和異常詳解
相關文章
利用Chatgpt開發(fā)一款加減乘除計算器(Python代碼實現)
這篇文章主要為大家詳細介紹了如何利用Chatgpt開發(fā)一款加減乘除計算器(用Python代碼實現),文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-02-02