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 相关文章推荐
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 Python
Python发送Email方法实例
Aug 21 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
python修改txt文件中的某一项方法
Dec 29 Python
Python应用领域和就业形势分析总结
May 14 Python
python绘制地震散点图
Jun 18 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
python 错误处理 assert详解
Apr 20 Python
导致python中import错误的原因是什么
Jul 01 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 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中神奇的fastcgi_finish_request
2011/05/02 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
详解Python中的from..import绝对导入语句
2016/06/21 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
Python线程之定位与销毁的实现
2019/02/17 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
超级实用的8个Python列表技巧
2020/08/24 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
英国名牌男装店:Standout
2021/02/17 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
开办加工厂创业计划书
2014/01/03 职场文书
仓管员岗位责任制
2014/02/19 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
会计岗位工作总结
2015/08/12 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python