成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

講述Python 特性大總結

開發 后端
Python 是一個過程性和面向對象語言,它實際上包含了實現完整函數編程所需的每樣事物,這種語言具有非常簡捷而清晰的語法特點,下面說一下Python 特性問題。

本文著重介紹Python 特性的問題:這種語言具有非常透明的語法特點,適合不同環境的各種高層任務,幾乎可以在所有的操作系統中運行,好了,想了解Python 特性就隨本文進入吧。

我們***從最難的問題開始:“到底什么是函數編程 (FP)?”一個答案可能會說 FP 就是您在使用例如 Lisp、Scheme、Haskell、ML、OCAML、Clean、Mercury、Erlang(或其它一些)語言進行編程時所做的。

這是一個穩妥的答案,但不能很確切地闡明問題。不幸的是,即使是函數程序員他們自己也很難對 FP 究竟是什么有個一致的認識。“盲人摸象”的故事用來形容這一情況似乎很合適。

還可以放心地將 FP 與“命令編程”(使用例如 C、Pascal、C++、Java、Perl、Awk、TCL 以及其它大多數語言所執行的操作,至少是在很大程度上)進行對比。 從個人角度來說,我會將函數編程粗略地描繪為至少具有以下幾個特征。稱得上函數性的語言使這些事情變得簡單,而使其它事情變得困難或不可能:

函數是***類(對象)。即,可以對“數據”進行的每樣操作都可以使用函數本身做到(例如將一個函數傳遞給另一個函數)。 將遞歸用作主要的控制結構。在某些語言中,不存在其它“循環”構造。 重點集中在列表 LISt 處理(例如,名稱 Lisp)。列表經常和子列表的遞歸一起使用以替代循環。#t#
 
“純”函數語言能夠避免副作用。這不包括在命令語言中最普遍的模式,即指定***個,然后將另一個值指定給同一個變量來跟蹤程序狀態。 FP 不鼓勵或根本不允許出現語句,取而代之是使用表達式求值(換句話說,即函數加上自變量)。在很純粹的情況下,一個程序就是一個表達式(加上支持的定義)。

FP 關心的是計算什么而不是如何計算。 許多 FP 利用了“更高等級”函數(換句話說,就是函數對一些函數操作,而這些函數又對其它函數操作)。
 函數編程的提倡者認為所有這些特征都導致更快速的開發更短以及錯誤更少的代碼。

而且,計算機科學、邏輯和數學領域的高級理論學家發現證明函數語言和程序的正式性能比命令語言和程序容易得多。 固有的 Python 函數能力 自從 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 是如何使用函數和遞歸來表示流控制是值得的。

消除流控制語句 在我們執行消除聯系時要考慮的***件事是 Python “短路”了布爾表達式的求值這一事實。這樣就提供了表達式版本的 if/ elif/ else 塊(假設每塊都調用一個函數,通常總有可能這樣安排)。下面是具體方法:

  1. # Normal statement-based flow control   
  2. if <cond1>: func1()   
  3. elif <cond2>: func2()   
  4. else: func3()   
  5.  
  6. # Equivalent "short circuit" expression   
  7. (<cond1> and func1()) or (<cond2> and func2()) or (func3())   
  8.  
  9. # Example "short circuit" expression   
  10. >>> x = 3   
  11. >>> def pr(s): return s   
  12. >>> (x==1 and pr('one')) or (x==2 and pr('two')) or (pr('other'))   
  13. 'other'   
  14. >>> x = 2   
  15. >>> (x==1 and pr('one')) or (x==2 and pr('two')) or (pr('other'))   
  16. 'two'  
責任編輯:chenqingxiang 來源: 51CTO.com
相關推薦

2010-03-01 18:36:59

Python標準語言

2010-03-05 15:43:46

Android SDK

2021-03-02 09:34:41

Nodejs14前端代碼

2013-02-25 14:08:56

Windows Ser

2009-11-11 16:37:50

ADO.NET新增特性

2010-01-07 10:23:16

華為3Com交換機

2010-02-03 13:37:59

Python 特性

2009-12-25 10:36:10

ASP.NET 和 X

2009-11-12 11:34:52

2012-06-21 09:21:06

微軟Windows Pho

2010-02-23 16:32:14

Python編程

2010-01-14 13:29:33

三層交換機特性

2010-02-03 10:12:53

Python模塊

2010-02-01 09:55:42

Python HTTP

2017-11-07 13:24:38

Pythontime模塊datetime

2010-02-24 13:45:40

Python開發人員

2009-09-27 16:51:40

Hibernate U

2010-02-01 13:25:32

Python腳本

2010-03-01 17:47:53

Python語言

2022-08-16 14:27:56

Java開發編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产露脸国语对白在线 | 久久精品视频在线免费观看 | 国产最好的av国产大片 | 国产色网站 | 国产精品久久国产精品久久 | 国产99久久 | 日本在线播放一区二区 | 国产精品久久久久久久久久软件 | 亚洲淫视频| 少妇诱惑av | 在线播放国产一区二区三区 | a毛片视频网站 | 最新国产在线 | 日韩成人av在线 | 欧美国产亚洲一区二区 | 欧美精品99 | 欧美一级片在线观看 | 欧美一级二级视频 | 一级片片 | 少妇一区二区三区 | 日韩高清www| 国产精品成人国产乱 | 免费观看一区二区三区毛片 | 亚洲电影一级片 | 亚洲一区成人 | 最新国产视频 | 国产精品久久久久久久久久久久久 | 午夜精品一区二区三区在线观看 | 天天爽夜夜骑 | 国产精品视频一区二区三区不卡 | 国产高清精品在线 | 国产成人一区二区三区久久久 | 91精品久久久久久久久久小网站 | 久久久久欧美 | 中文字幕久久久 | 伊大人久久 | 天天草天天 | 夜夜撸av| 青青久在线视频 | 精品国产乱码久久久久久丨区2区 | 欧美精产国品一二三区 |