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求列表交集的方法汇总
Nov 10 Python
python使用Queue在多个子进程间交换数据的方法
Apr 18 Python
python实现中文分词FMM算法实例
Jul 10 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
Python3实现的反转单链表算法示例
Mar 08 Python
python中time库的实例使用方法
Oct 31 Python
解决Pycharm的项目目录突然消失的问题
Jan 20 Python
python 工具 字符串转numpy浮点数组的实现
Mar 14 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
next在python中返回迭代器的实例方法
Dec 15 Python
微信小程序调用python模型
Apr 21 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中的cookie不用刷新就生效的方法
2012/02/04 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
curl和libcurl的区别简介
2015/07/01 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
纯javascript版日历控件
2016/11/24 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
javascript实现留言板功能
2020/02/08 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
2014年医学生毕业自我鉴定
2014/03/26 职场文书
仓库文员岗位职责
2014/04/06 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技