Python使用lambda抛出异常实现方法解析


Posted in Python onAugust 20, 2020

假设我们需要一个函数什么事都不干,只是抛出异常(在某些系统中有些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系统监控模块psutil功能与经典用法分析
May 24 Python
Python中交换两个元素的实现方法
Jun 29 Python
Python实现随机漫步功能
Jul 09 Python
python3实现多线程聊天室
Dec 12 Python
Python代理IP爬虫的新手使用教程
Sep 05 Python
Pycharm 2019 破解激活方法图文详解
Oct 11 Python
Python实现把类当做字典来访问
Dec 16 Python
Python的对象传递与Copy函数使用详解
Dec 26 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
什么是python的函数体
Jun 19 Python
python调试工具Birdseye的使用教程
May 25 Python
python flask开发的简单基金查询工具
Jun 02 Python
浅谈对python中if、elif、else的误解
Aug 20 #Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 #Python
Python自动化测试中yaml文件读取操作
Aug 20 #Python
通过代码实例解析Pytest运行流程
Aug 20 #Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 #Python
python openCV实现摄像头获取人脸图片
Aug 20 #Python
Python实现自动签到脚本功能
Aug 20 #Python
You might like
BBS(php & mysql)完整版(七)
2006/10/09 PHP
支持oicq头像的留言簿(一)
2006/10/09 PHP
PHP如何得到当前页和上一页的地址?
2006/11/27 PHP
javascript,php获取函数参数对象的代码
2011/02/03 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
python类参数self使用示例
2014/02/17 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
详解Python3 pandas.merge用法
2019/09/05 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
python导入库的具体方法
2020/06/18 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
经典优秀个人求职自荐信格式
2013/09/25 职场文书
师范生实习个人的自我评价
2013/09/28 职场文书
作文评语大全
2014/04/23 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
volatile保证可见性及重排序方法
2022/08/05 Java/Android