深度剖析Python函数编程技巧

开发 后端
也许大家对Python函数还不是很了解,看完本文后对您一定会大有帮助,下文除了学习Python函数编程的基本操作外还对Python函数编程新技巧进行全面研究。

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

  1. >>> f=lambda(n):n**2  
  2. >>> f(6)  
  3. 36  
  4.  
  5. >>> f=lambda(n):lambda(m):n*m  
  6. >>> g=f(5) #相当与g=lambda(m):5*m  
  7. >>> g(9) #相当于5*9  
  8. 45 

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

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

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

  1. >>> def add(x,y):  
  2.     return x+y  
  3.  
  4. >>> reduce(add,range(1,10))  
  5. 45 

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

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

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

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

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

同时却并没有给软件性能带来任何负面影响,他说:“就我们的业务而言,快速地开发出新产品比开发出性能惊人的软件产品 要重要得多,开发时间相比软件的优化要贵得多(以每小时计算)。

对开发速度采用何种评价标准一直是个很难确定的问题,不过通常情况下,普遍认为开发Python应用程序的速度大约是用Java开发同类应用程序速度的10倍。要是相比C/C++节约的时间就更多了。

责任编辑:chenqingxiang 来源: 51CTO.com
相关推荐

2010-01-13 10:16:42

C++软件

2010-02-24 16:44:58

Python 函数

2010-02-03 16:56:24

Python包

2010-02-01 13:34:59

Python 脚本

2010-02-02 15:25:35

Python语法

2010-03-01 18:33:30

2010-03-01 14:50:06

Python 工具

2010-02-26 10:38:29

Python语言

2010-02-24 16:33:28

Python功能

2010-02-02 13:22:06

Python面向对象

2010-02-03 11:26:28

2010-02-23 10:05:52

Python历史

2010-02-26 17:44:40

Python测试框架

2010-02-22 13:53:22

Python 中文乱码

2010-03-05 13:34:54

2012-12-25 09:45:08

PythonWeb

2010-03-01 16:48:02

Python模块

2010-03-01 17:40:29

Python面向对象语

2010-02-01 14:05:03

2010-02-24 14:04:32

Python脚本语言
点赞
收藏

51CTO技术栈公众号