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 selenium 三种等待方式详解(必会)
Sep 15 Python
python实现折半查找和归并排序算法
Apr 14 Python
python如何生成网页验证码
Jul 28 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
python中for in的用法详解
Apr 17 Python
keras中的backend.clip用法
May 22 Python
python如何输出反斜杠
Jun 18 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 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 Mysql编程之高级技巧
2008/08/27 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
Python while 循环使用的简单实例
2016/06/08 Python
python3编码问题汇总
2016/09/06 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
python pandas模块基础学习详解
2019/07/03 Python
详解python播放音频的三种方法
2019/09/23 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
一些Solaris面试题
2015/12/22 面试题
电子商务专业求职信
2014/03/08 职场文书
无毒社区工作方案
2014/05/23 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
初中家长评语大全
2014/12/26 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书