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 相关文章推荐
requests和lxml实现爬虫的方法
Jun 11 Python
python中利用队列asyncio.Queue进行通讯详解
Sep 10 Python
PyQt5每天必学之布局管理
Apr 19 Python
利用Python写一个爬妹子的爬虫
Jun 08 Python
Python编程flask使用页面模版的方法
Dec 28 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
python pandas时序处理相关功能详解
Jul 03 Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 Python
matplotlib绘制多个子图(subplot)的方法
Dec 03 Python
Python pygame绘制文字制作滚动文字过程解析
Dec 12 Python
Python字典取键、值对的方法步骤
Sep 30 Python
pymysql模块使用简介与示例
Nov 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
十大“创意”战术!
2020/03/04 星际争霸
PHP 透明水印生成代码
2012/08/27 PHP
php实现httpclient类示例
2014/04/08 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
vue-prop父组件向子组件进行传值的方法
2018/03/01 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
vue实现的树形结构加多选框示例
2019/02/02 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
JS随机密码生成算法
2019/09/23 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
Python Django 命名空间模式的实现
2019/08/09 Python
Hotels.com中国区:好订网
2016/08/18 全球购物
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
会计电算化专业应届大学生求职信
2013/10/22 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
怎样写离婚协议书
2014/09/10 职场文书
单位婚育证明范本
2014/11/21 职场文书
回复函格式及范文
2015/07/14 职场文书
python中的sys模块和os模块
2022/03/20 Python
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js