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语言的优雅之处
Jul 04 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
判断网页编码的方法python版
Aug 12 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
python中多个装饰器的调用顺序详解
Jul 16 Python
python面向对象 反射原理解析
Aug 12 Python
Python hmac模块使用实例解析
Dec 24 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
selenium3.0+python之环境搭建的方法步骤
Feb 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 高手之路(三)
2006/10/09 PHP
PHP HTML代码串截取代码
2008/12/29 PHP
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
JavaScript 基础问答三
2008/12/03 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
详解webpack babel的配置
2018/01/09 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Python探索之ModelForm代码详解
2017/10/26 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
python图像和办公文档处理总结
2019/05/28 Python
Django models.py应用实现过程详解
2019/07/29 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
Python连接Impala实现步骤解析
2020/08/04 Python
财务工作犯错检讨书
2014/10/07 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
java executor包参数处理功能 
2022/02/15 Java/Android