有关Python 特性问题说明研究
创始人
2024-06-22 14:21:16
0

大多数开发人员对于开发Python应用程序的速度大约是用Java开发同类应用程序速度的10倍,要是相比C/C++节约的时间就更多了,对开发速度采用何种评价标准一直是个很难确定的问题,下文就对Python 特性进行学习。

仔细分析一下,这2个参数中,有1个Python 特性是在request生存期内不变的,而另外一个是用于过滤的值。所以最终用了一下lambda来做了个函数的分阶段参数传递。例子如下,过滤函数:

  1.    # Normal statement-based flow control   
  2.           
  3.           
  4.           if  
  5.          :   func1()   
  6.           
  7.           elif  
  8.          : func2()   
  9.           
  10.           else  
  11.         :         func3()   
  12.    
  13.         # Equivalent "short circuit" expression   
  14. (   
  15.           
  16.           and  
  17.          func1())   
  18.           
  19.           or  
  20.          (   
  21.           
  22.           and  
  23.          func2())   
  24.           
  25.           or  
  26.          (func3())   
  27.    
  28.         # Example "short circuit" expression   
  29. >>> x = 3   
  30. >>>   

Python是一种动态语言,而且还常常号称是动态语言里面最慢的一个。最近Ruby的出现才略微改变了一下这种情况。呵呵,听说Ruby比Python还要“动态”一些。在Python中提高效率的一种可选办法是确保可读性的情况下避免使用动态特性,比如过多的"."操作符就很低效。

另外,就是可以用一些函数式编程的方法,比如很多内置函数,如map()、filter()、zip()等等,应用lambda也是个不错的办法。自从 Python 1.0 以来,Python 具有上面列出的大多数 FP 特征。但对于大多数 Python 特性,它们以一种非常混合的语言呈现。

很大程度上是因为Python 特性的 OOP 特性,您可以使用希望使用的部分而忽略其余部分(直到在稍后需要它为止)。使用 Python 2.0, 列表内涵添加了一些 非常棒的“句法上的粉饰”。虽然列表内涵没有添加什么新的能力,但它们使许多旧的能力看起来好了 许多。

Python 中 FP 的基本元素是函数 map() 、 reduce() 和 filter() ,以及运算符 lambda 。在 Python 1.x 中, apply() 函数对于将一个函数的列表返回值直接应用于另一个函数也很方便。

Python 2.0 为这一目的提供了改进的语法。可能让人吃惊,但很少的这几个函数(以及基本运算符)几乎足以编写任何 Python程序;特别是,所有的流控制语句( if 、 elif 、 else 、 assert 、 try 、 except 、 finally 、 for 、 break 、 continue 、 while 、 def )可以只使用 FP 函数和运算符以函数风格处理。

虽然实际上消除程序中的所有流控制命令可能只对加入“混乱的 Python”竞争(与看上去非常象 Lisp 的代码)有用,但是理解 FP 是如何使用函数和递归来表示流控制是值得的。

【编辑推荐】

  1. 如何使Python嵌入C++应用程序?
  2. 深入探讨Ruby与Python语法比较
  3. Python学习资料介绍分享
  4. Python学习经验谈:版本、IDE选择及编码解决方案
  5. 浅析Python的GIL和线程安全

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...