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 相关文章推荐
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
Apr 28 Python
python中尾递归用法实例详解
Apr 28 Python
Python字符串拼接、截取及替换方法总结分析
Apr 13 Python
利用python实现简单的循环购物车功能示例代码
Jul 05 Python
Python数据分析之如何利用pandas查询数据示例代码
Sep 01 Python
对python调用RPC接口的实例详解
Jan 03 Python
详解【python】str与json类型转换
Apr 29 Python
利用ImageAI库只需几行python代码实现目标检测
Aug 09 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
python cv2在验证码识别中应用实例解析
Dec 25 Python
python实现无边框进度条的实例代码
Dec 30 Python
python装饰器代码深入讲解
Mar 01 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函数指定默认值方法的小例子
2013/12/04 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
对pandas中Series的map函数详解
2018/07/25 Python
python中二分查找法的实现方法
2020/12/06 Python
伦敦一卡通:The London Pass
2018/11/30 全球购物
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
软件测试面试题
2015/10/21 面试题
解释一下钝化(Swap out)
2016/12/26 面试题
前处理组长岗位职责
2014/03/01 职场文书
工作求职自荐信
2014/06/13 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
大学生读书笔记范文
2015/07/01 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP