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 相关文章推荐
PHP webshell检查工具 python实现代码
Sep 15 Python
Python字符串切片操作知识详解
Mar 28 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 Python
详解python校验SQL脚本命名规则
Mar 22 Python
python 自动轨迹绘制的实例代码
Jul 05 Python
python django下载大的csv文件实现方法分析
Jul 19 Python
Python生成词云的实现代码
Jan 14 Python
python设置中文界面实例方法
Oct 27 Python
django中cookiecutter的使用教程
Dec 03 Python
Python Flask请求扩展与中间件相关知识总结
Jun 11 Python
Python中三种花式打印的示例详解
Mar 19 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
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
PHP 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
php生成gif动画的方法
2015/11/05 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
javascript常用函数(2)
2015/11/05 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
python 布尔操作实现代码
2013/03/23 Python
python实现2014火车票查询代码分享
2014/01/10 Python
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
详解python中的json的基本使用方法
2016/12/21 Python
Python实现的桶排序算法示例
2017/11/29 Python
python实现excel读写数据
2021/03/02 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Python 3 判断2个字典相同
2019/08/06 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
法律专业推荐信范文
2013/11/29 职场文书
优秀部门获奖感言
2014/02/14 职场文书
幼儿园老师寄语
2014/04/03 职场文书
汽车维修求职信
2014/06/15 职场文书
群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
师范生教育见习总结
2015/06/23 职场文书