開篇就要提到一個大的話題:編程范型。什么是編程范型?引用維基百科中的解釋:
代碼如下:
編程范型或編程范式(英語:Programming paradigm),(范即模范之意,范式即模式、方法),是一類典型的編程風格,是指從事軟件工程的一類典型的風格(可以對照方法學)。如:函數式編程、程序編程、面向對象編程、指令式編程等等為不同的編程范型。
編程范型提供了(同時決定了)程序員對程序執行的看法。例如,在面向對象編程中,程序員認為程序是一系列相互作用的對象,而在函數式編程中一個程序會被看作是一個無狀態的函數計算的串行。
正如軟件工程中不同的群體會提倡不同的“方法學”一樣,不同的編程語言也會提倡不同的“編程范型”。一些語言是專門為某個特定的范型設計的(如Smalltalk和Java支持面向對象編程,而Haskell和Scheme則支持函數式編程),同時還有另一些語言支持多種范型(如Ruby、Common Lisp、Python和Oz)。
編程范型和編程語言之間的關系可能十分復雜,由于一個編程語言可以支持多種范型。例如,C++設計時,支持過程化編程、面向對象編程以及泛型編程。然而,設計師和程序員們要考慮如何使用這些范型元素來構建一個程序。一個人可以用C++寫出一個完全過程化的程序,另一個人也可以用C++寫出一個純粹的面向對象程序,甚至還有人可以寫出雜揉了兩種范型的程序。
不管看官是初學者還是老油條,都建議將上面這段話認真讀完,不管理解還是不理解,總能有點感覺的。
這里推薦一篇文章,這篇文章來自網絡:《主要的編程范型》
扯了不少編程范型,今天本講要講什么呢?今天要介紹幾個python中的小函數,這幾個函數都是從函數式編程借鑒過來的,它們就是:
filter、map、reduce、lambda、yield
有了它們,最大的好處是程序更簡潔;沒有它們,程序也可以用別的方式實現,只不過麻煩一些罷了。所以,還是能用則用之吧。
lambda
lambda函數,是一個只用一行就能解決問題的函數,聽著是多么誘人呀。看下面的例子:
代碼如下:
>>> def add(x): #定義一個函數,將輸入的變量增加3,然后返回增加之后的值
... x +=3
... return x
...
>>> numbers = range(10)
>>> numbers
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #有這樣一個list,想讓每個數字增加3,然后輸出到一個新的list中
>>> new_numbers = []
>>> for i in numbers:
... new_numbers.append(add(i)) #調用add()函數,并append到list中
...
新聞熱點
疑難解答