写在开始
这个小窍门是无意间发现的,因为lambda表达式的原因,Python里面的lambda表达式只能有一个表达式,不像是def定义的函数那样里面可以有很多个语句.但是我发现了一个用法可以突破一点这个限制,那就是用tuple.
用法
本身tuple用的时候会把里面所有的代码都求一次值,所以(print("hello "),print("world"))
可以在控制台输出一个中间有换行的hello world
,同时返回一个(None,None)
的tuple,tuple内部的代码是按照tuple里面索引的先后来求值的,越靠前的表达式越早的被执行,所以一个tuple里面可以放好多条表达式,然后一步一步的执行,最后返回一个tuple,然后如果你只是想要这个tuple里面的某一个返回值的话在后面加上索引就好了,然后这就能够在lambda表达式里面嵌入多条表达式.
使用限制
- 内部不能出现
=
的赋值 - 应该也就那一条
- 不要用这个写的太张扬,省得到时候看不懂
写在最后
这是一个我无意中发现的一个特性,可能list也有这一个特性吧,但是我没注意,所以也就是偶尔用一下,毕竟有时候一些东西一个表达式有可能搞不定但是多一点就行了的说,Python里面lambda只能一行也是很无语,这个倒是可以突破一下,毕竟Java里面的lambda表达式是可以多条语句的.