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())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 超详细注释之OpenCV更改像素与修改图像通道

    超详细注释之OpenCV更改像素与修改图像通道

    这篇文章主要介绍了OpenCV更改像素与修改图像通道,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 用Python 执行cmd命令

    用Python 执行cmd命令

    这篇文章主要介绍了用Python 执行cmd命令的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • Python变量命名规范的总结

    Python变量命名规范的总结

    在Python编程中,变量命名规范对于编写优雅和可维护的代码至关重要,本文主要介绍了Python变量命名规范的总结,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Django模板继承与模板的导入实例详解

    Django模板继承与模板的导入实例详解

    模板继承主要是为了提高代码重用,减轻开发人员的工作量,下面这篇文章主要给大家介绍了关于Django模板继承与模板导入的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • 使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式

    使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式

    今天小编就为大家分享一篇使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Pytorch可视化(显示图片)及格式转换问题

    Pytorch可视化(显示图片)及格式转换问题

    这篇文章主要介绍了Pytorch可视化(显示图片)及格式转换问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Flask交互基础(GET、 POST 、PUT、 DELETE)的使用

    Flask交互基础(GET、 POST 、PUT、 DELETE)的使用

    这篇文章主要介绍了Flask交互基础(GET、 POST 、PUT、 DELETE)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Django传递数据给前端的3种方式小结

    Django传递数据给前端的3种方式小结

    Django从后台往前台传递数据时有多种方法可以实现,下面这篇文章主要给大家介绍了关于Django传递数据给前端的3种方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 基于Python的XSS测试工具XSStrike使用方法

    基于Python的XSS测试工具XSStrike使用方法

    XSS(Cross Site Scripting,跨站脚本攻击)是一类特殊的Web客户端脚本注入攻击手段,通常指攻击者通过“HTML注入”篡改了网页,插入恶意的脚本,从而在用户浏览网页时控制浏览器的一种攻击。
    2017-07-07
  • 用Python制作mini翻译器的实现示例

    用Python制作mini翻译器的实现示例

    这篇文章主要介绍了用Python制作mini翻译器的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论