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 相关文章推荐
windows下wxPython开发环境安装与配置方法
Jun 28 Python
零基础写python爬虫之神器正则表达式
Nov 06 Python
python logging类库使用例子
Nov 22 Python
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
解决pyttsx3无法封装的问题
Dec 24 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 Python
Python模块的制作方法实例分析
Dec 21 Python
Django 删除upload_to文件的步骤
Mar 30 Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 Python
python实现单机五子棋
Aug 28 Python
python之基数排序的实现
Jul 26 Python
python运行脚本文件的三种方法实例
Jun 25 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
递归列出所有文件和目录
2006/10/09 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
php修改数组键名的方法示例
2017/04/15 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
js实现下一页页码效果
2017/03/07 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
Python 读写文件的操作代码
2018/09/20 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
简单了解python中对象的取反运算符
2019/07/01 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
Python单链表原理与实现方法详解
2020/02/22 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
万能检讨书
2015/01/27 职场文书
物业保安辞职信
2015/05/12 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js