假设我们需要一个函数什么事都不干,只是抛出异常(在某些系统中有些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())

最后忠告:玩玩可以,慎用!

pythonlambda多行_Python中通过lambda抛异常的奇迹淫巧相关推荐

  1. Python中通过lambda抛异常的奇技淫巧

    假设我们需要一个函数什么事都不干,只是抛出异常(在某些系统中有些handler就是干这事的),我们可以很直观的写出下面的代码: def func():raise Exception("thi ...

  2. mysql for 循环删除_Java增强for循环中删除元素抛异常问题

    前言 最近突然想起刚毕业那会找工作时面试被问了个这样的问题.就是"使用增强for循环遍历ArrayList(List集合)时删除其中的元素是否会出现异常?".说实话当时真把我愣住了 ...

  3. pythonlambda回调函数_Python中如何借助lambda来给回调函数传参

    开门见山,直接从一个例子开始,假设我们在写一个GUI界面,界面上有个按钮,其功能是点击它就能得到物品A的详细描述,对应的代码如下 detailButton.clicked.connect(self.s ...

  4. lambda在python中的意思_Python中的lambda的简单介绍

    1.lambda是什么? func=lambda x:x+1 print(func(1)) #2 print(func(2)) #3 #以上lambda等同于以下函数 def func(x): ret ...

  5. python中lambda函数_python中的lambda函数用法

    例1:传入多个参数的lambda函数 defsum(x,y):return x+y 用lambda来实现: p = lambda x,y:x+yprint(p(4,6)) 例2:传入一个参数的lamb ...

  6. python csv模块 一次读多行_python中csv模块读取reader只能读取一次

    各位好,请问python读取csv文件时只能读取一次是为什么 现在有一个csv文件 大概是这个样子 现在对ID和length进行读取 import csv with open('ccc.csv','r ...

  7. python多个异常处理_python中处理多个异常

    知识回顾 自定义异常: 1.自定义类 2.学会继承,继承Exception 3.自定义异常的构造函数 4.手动抛出异常使用raise 本节知识视频教程 以下开始文字讲解: 一.处理多个异常 1.把所有 ...

  8. python中exception方法_python中try except处理程序异常的三种常用方法

    如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序:try: 语句1 语句2 . . 语句N except .........: do someth ...

  9. python复制出现错误_Python中的错误和异常

    前言 错误是程序中的问题,由于这些问题而导致程序停止执行.另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程. python中会发生两种类型的错误. 语法错误 逻辑错误(异常) 语法错 ...

  10. xjar加密后运行错误_Python中的错误和异常

    前言 错误是程序中的问题,由于这些问题而导致程序停止执行.另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程. python中会发生两种类型的错误. 语法错误 逻辑错误(异常) 语法错 ...

最新文章

  1. 美国计算机工程专业,美国计算机工程专业哪些学校比较好
  2. 修改mysql数据库字符集_修改及查看mysql数据库的字符集
  3. linux suse 共享目录_SUSE环境下YAST源(连接共享目录)
  4. AngularJs 冷兵器杂谈
  5. go编写命令行工具_编写者的命令行文档转换工具
  6. Python中字符串String去除出换行符(\n,\r)和空格的问题
  7. Mobius反演定理-BZOJ2154
  8. 微服务笔记(二) 服务发现
  9. flink读取不到文件_Flink流处理API——Source
  10. 基础04继承、super、this、抽象类
  11. 各地少先队深入开展红领巾心向党主题教育-少先队-红领巾心向党-主题教育
  12. 使用微信同声传译插件开发一款翻译类的小程序
  13. pyqt QListView详细用法
  14. 初次联系导师短信模板_申博经验分享|如何联系导师?
  15. 【程序员面试金典】有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。注意这次的网格中有些障碍点是不能走的。
  16. 零基础是学习Java还是大数据?
  17. WinEdt编译提示pdf文件打不开,Cannot Run pdf
  18. 【开源项目】之健康助手
  19. STM32中的DFSDM应用介绍
  20. 【阿里云建站】云服务器能免费送?

热门文章

  1. 2019年博客之星评选活动之晋级TOP20博主名单
  2. 倾斜摄影三维建模全流程
  3. PS学习笔记2-ps的基础操作
  4. photoshop基础操作集合01
  5. PS学习笔记(一):基础知识
  6. 海康云台摄像机 ISAPI 的签名机制与语音传输
  7. 语音识别(ASR) 阿里云
  8. OpenCV C++双目三维重建:双目摄像头实现双目测距
  9. Ps修改更换证件照背景色(底色颜色)
  10. 简单3小步,轻松搞定PS证件照换底色(有手就行)