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中使用装饰器和元编程实现结构体类实例
Jan 28 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python实现的彩票机选器实例
Jun 17 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
Python中利用xpath解析HTML的方法
May 14 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
对Python中Iterator和Iterable的区别详解
Oct 18 Python
记录Python脚本的运行日志的方法
Jun 05 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 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中使用Oracle数据库(1)
2006/10/09 PHP
PHP新手上路(七)
2006/10/09 PHP
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
原生JavaScript实现瀑布流布局
2020/06/28 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python中几个比较常见的名词解释
2015/07/04 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
python基础练习之几个简单的游戏
2017/11/10 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
会计岗位工作总结
2015/08/12 职场文书
golang 语言中错误处理机制
2021/08/30 Golang