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安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
Python实现的朴素贝叶斯分类器示例
Jan 06 Python
Python编程深度学习计算库之numpy
Dec 28 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
Django ORM 查询管理器源码解析
Aug 05 Python
使用Tkinter制作信息提示框
Feb 18 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
django和flask哪个值得研究学习
Jul 31 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
python使用smtplib模块发送邮件
Dec 17 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
谈谈PHP语法(4)
2006/10/09 PHP
基于文本的搜索
2006/10/09 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
结束运行python的方法
2020/06/16 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
花田少年史观后感
2015/06/16 职场文书
大学运动会加油稿
2015/07/22 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书