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第三方库


热门话题
java JPanel不会对键绑定做出反应   当时间大于零时,不得在UI线程上调用java Await   JTextArea的java线程安全。追加   Java用户输入的字和行计数器   java以spreedsheat格式将数据保存到文件中   java构造函数的意义是什么?   java findViewById返回null,尽管组件的ID存在   java如何向按钮添加图像   java如何中断ExecutorService的线程   java如何将属性(例如枚举)绑定到不同类型的组件属性(例如每个枚举的映像)?   随机森林分类器的java实现   html使用java连接到一个站点并发布,HTTP状态代码200   从类访问属性时发生java编译错误   Java自动填充ArrayList,搜索更好的选项