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之编写类之二方法
Oct 11 Python
Python提取Linux内核源代码的目录结构实现方法
Jun 24 Python
python中安装模块包版本冲突问题的解决
May 02 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
Python实现Dijkstra算法
Oct 17 Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
Python使用post及get方式提交数据的实例
Jan 24 Python
python word转pdf代码实例
Aug 16 Python
python多线程实现同时执行两个while循环的操作
May 02 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
功能齐全的PHP发送邮件类代码附详细说明
2008/07/10 PHP
PHP的PDO预处理语句与存储过程
2019/01/27 PHP
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
javascript页面渲染速度测试脚本分享
2014/04/15 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
Python 转义字符详细介绍
2017/03/21 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
python 日期排序的实例代码
2019/07/11 Python
Django 外键的使用方法详解
2019/07/19 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
python常用排序算法的实现代码
2019/11/08 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
党员教师工作决心书
2014/03/13 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
详解redis在微服务领域的贡献
2021/10/16 Redis