Python使用lambda抛出异常实现方法解析

 更新时间:2020年08月20日 11:03:32   作者:Tacey Wong  
这篇文章主要介绍了Python使用lambda抛出异常实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

假设我们需要一个函数什么事都不干,只是抛出异常(在某些系统中有些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基于property实现类的特性操作示例

    Python基于property实现类的特性操作示例

    这篇文章主要介绍了Python基于property实现类的特性,结合实例形式分析了使用property实现类的特性相关操作技巧与注意事项,需要的朋友可以参考下
    2018-06-06
  • PyQt5 QTable插入图片并动态更新的实例

    PyQt5 QTable插入图片并动态更新的实例

    今天小编就为大家分享一篇PyQt5 QTable插入图片并动态更新的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python pandas库中DataFrame对行和列的操作实例讲解

    python pandas库中DataFrame对行和列的操作实例讲解

    今天小编就为大家分享一篇python pandas库中DataFrame对行和列的操作实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 如何利用Python快速绘制海报级别地图详解

    如何利用Python快速绘制海报级别地图详解

    Python之所以这么流行,是因为它不仅能够应用于科技领域,还能用来做许多其他学科的研究工具,最常见的便是绘制地图,这篇文章主要给大家介绍了关于如何利用Python快速绘制海报级别地图的相关资料,需要的朋友可以参考下
    2021-09-09
  • 使用Python实现将list中的每一项的首字母大写

    使用Python实现将list中的每一项的首字母大写

    今天小编就为大家分享一篇使用Python实现将list中的每一项的首字母大写,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python中tkinter开发的常用29种功能用法总结

    Python中tkinter开发的常用29种功能用法总结

    tkinter(Tk interface)是Python的标准GUl库,支持跨平台的GUl程序开发,本文为大家整理了tkinter开发时常用的29种功能用法,希望对大家有所帮助
    2023-05-05
  • Matlab之使用HeatMap实现画热图

    Matlab之使用HeatMap实现画热图

    这篇文章主要介绍了Matlab之使用HeatMap实现画热图方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Python中Numpy的深拷贝和浅拷贝

    Python中Numpy的深拷贝和浅拷贝

    这篇文章主要介绍了Python中Numpy的深拷贝和浅拷贝,通过讲解Python中对Numpy数组操作的浅拷贝和深拷贝的概念和背后的原理展开全文,需要的小伙伴可以参考一下
    2022-05-05
  • python实现打开手机app并点击操作

    python实现打开手机app并点击操作

    这篇文章主要介绍了python实现打开手机app并点击操作,本文分为两部分一部分是打开应用,第二部分是调式手机连接电脑,需要的朋友可以参考下
    2022-04-04
  • 基于Python实现模拟三体运动的示例代码

    基于Python实现模拟三体运动的示例代码

    此前所做的一切三体和太阳系的动画,都是基于牛顿力学的,而且直接对微分进行差分化,从而精度非常感人,用不了几年就得撞一起去。所以本文来用Python重新模拟一下三体运动,感兴趣的可以了解一下
    2023-03-03

最新评论