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处理文本文件并生成指定格式的文件
Jul 31 Python
在Python的Flask框架中实现全文搜索功能
Apr 20 Python
Python入门教程之if语句的用法
May 14 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
轻松掌握python设计模式之策略模式
Nov 18 Python
python基础教程之Filter使用方法
Jan 17 Python
python之文件读取一行一行的方法
Jul 12 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
Python之关于类变量的两种赋值区别详解
Mar 12 Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 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
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
JavaScript开发规范要求(规范化代码)
2010/08/16 Javascript
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
JavaScript基于原型链的继承
2016/06/22 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
奖金申请报告模板
2015/05/15 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书