python lambdas的语法更改。

lambdazen的Python项目详细描述


PyPI version
Build Status
支持python 2.6-3.5

这是什么?

更好的python lambda语法满足匿名函数的需要。

写入a = (x) > x,而不是a = lambda x: x。见下文 语法注意事项。

立即开始:pip install lambdazen

fromlambdazenimportzendefotherfunc(*args):printsum(args)# The zen decorator allows you to define lambdas with a better syntax@zendefexample():example.epic=(x,y,z)>otherfunc(x,y,z)# Multiline lambdas are a tuple or list of statements# The assignment operator inside is << instead of =# The last statement is the return valueexample.multiline=(x,y,z)>(s<<otherfunc(x,y,z),s)# Call function so the lambdas are bound to function attributesexample()example.epic(1,2,3)>>>6example.multiline(1,2,3)>>>6

注意事项

  • 更好的lambda只能在具有^{tt4}的函数中定义$ 属性
  • 此函数中的任何其他代码都将被执行,最好使用 作为lambdas容器的函数

它是如何工作的

Read the story

tldr;运行时内存中源重写和重新编译

其他示例

fromlambdazenimportzen# Lambdas don't need to be bound to the function@zendefnormalizeString(nS):transforms=[(s)>s.strip(),(s)>s.lower(),(s)>s.replace(' ','_')]apply_all=(transforms_list,s)>(is_done<<(len(transforms_list)==0),current_transform<<transforms_list[0]ifnotis_doneelseNone,remaining_transforms<<transforms_list[1:]ifnotis_doneelseNone,current_transform(apply_all(remaining_transforms,s))ifnotis_doneelses)returnapply_all(transforms,nS)normalizeString("Abraham Lincoln")>>>"abraham_lincoln"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Eclipse中使用多个调用在一行上打印java   javajackson序列化问题。只有同一实体的第一个对象可以很好地序列化   Java中Deflate函数的等价充气   使用customlitview的java Android actionbar搜索   java“<T>T get()”是什么意思?(它有用吗?)   目标c使用CommonCrypto使用AES256加密,使用OpenSSL或Java解密   java在运行时更新资源文件   fileinputstream在java中访问并将数据写入现有文件   带集群的java Android Mapbox我希望每个功能都有不同的标记图像   java JDK8>JDK10:PKIX路径生成失败:SunCertPathBuilderException:找不到请求目标的有效证书路径   java使用Hk2生成具有指定构造函数参数的实例   为什么这个系统。出来Java中的println()打印到控制台?   java目录和文件名连接不起作用   使用mockito和通配符绘图的java