深度剖析Python函数编程技巧

farewellpoem 2010-02-03

Python函数编程里面, 我们可以定义匿名函数,也可以把函数赋值给一个变量或作为参数传递给另外一个函数,以远低于Java编辑-编译-测试的开发时间提升Java类库的运用,代码如下所示:

>>> f=lambda(n):n**2  



>>> f(6)  



36  


 



>>> f=lambda(n):lambda(m):n*m  




>>> g=f(5) #相当与g=lambda(m):5*m  




>>> g(9) #相当于5*9  



45 

lambda定义的匿名函数可以引用外围函数的变量,上面的代码中,第二个lambda表达式定义的匿名函数引用了第一个匿名函数的参数n,因为第一个匿名函数是第二个匿名函数的外围函数。

除了lambda表达式之外,python还支持将函数作为参数传递给另外一个函数,有点类似于C语言中的函数指针,Python函数编程内建的函数filter,map,reduce就可以接受函数参数。

filter(function, sequence)会遍历sequence中的每一个item,并以该item为参数调用function,如果function返回ture,就将该item加到结果sequence中,这就达到过滤sequence的效果,作为参数的function就是过滤的条件,例子如下:

>>> def add(x,y):  


    return x+y  


 



>>> reduce(add,range(1,10))  



45 

IT部分通常要完成的任务相当繁重但支撑这些工作的资源却很少,这已经成为公开的秘密。任何承诺提高编码效率、降低软件总成本的IT解决方案都应该进行 周到的考虑。Python所具有的一个显著优势就是可以在企业的软件创建和维护阶段节约大量资金,而这两个阶段的软件成本占到了软件整个生命周期中总成本 的50%到95%。

Python清晰可读的语法使得软件代码具有异乎寻常的易读性,甚至对那些不是最初接触和开发原始项目的程序员都 能具有这样的强烈感觉。虽然某些程序员反对在Python代码中大量使用空格。

不过,几乎人人都承认Python代码的可读性远胜于C或者Java,后两 者都采用了专门的字符标记代码块结构、循环、函数以及其他编程结构的开始和结束。提倡Python的人还宣称,采用这些字符可能会产生显著的编程风格差 异,使得那些负责维护代码的人遭遇代码可读性方面的困难。

Python明晰的语法使其成为一种学习曲线平和的编程语言。有经验的程序员甚至可能在一天之内就掌握Python的基础知识,至多不过一周作用就可以上手,而编程语言的专家则肯定会比他掌握C、C++、Java甚至Perl要快很多。

Python函数编程因其语法的明晰而获得的最大好处或许该算是开发时间的大大降低了。一名从事企业级应用程序开发工作的开发人员告诉我,他所在单位的开发时间 因为Python的采用而大大节约。

相关推荐