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使用cookie库操保存cookie详解
Mar 03 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
Python 处理图片像素点的实例
Jan 08 Python
Python用字典构建多级菜单功能
Jul 11 Python
Python循环中else,break和continue的用法实例详解
Jul 11 Python
浅析python 中大括号中括号小括号的区分
Jul 29 Python
python tkinter组件摆放方式详解
Sep 16 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
python识别验证码图片实例详解
Feb 17 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
Apr 26 Python
python 远程执行命令的详细代码
Feb 15 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自定义函数实现代码
2011/12/30 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
简单实现js上传文件功能
2017/08/21 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
wxPython窗口中文乱码解决方法
2014/10/11 Python
Django中几种重定向方法
2015/04/28 Python
Python基础入门之seed()方法的使用
2015/05/15 Python
Python机器学习之决策树算法
2017/12/22 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
PyQt5实现简易电子词典
2019/06/25 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
局部内部类是否可以访问非final变量?
2013/04/20 面试题
Windows和Linux动态库应用异同
2016/07/28 面试题
电大学习个人自我评价范文
2013/10/04 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
消防安全员岗位职责
2014/03/10 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
2015初中教导处工作总结
2015/07/21 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
能让Python提速超40倍的神器Cython详解
2021/06/24 Python