函式:def定義,有返回值
過程:def定義,沒有返回值
函式式程式設計是 抽象程度很高的程式設計正規化,純粹的函式式程式語言編寫的函式沒有變數。所以,任意函式,只要輸入是確定的,輸出就是確定的,就像數學裡的函式,變數和因變數的關係是明確的。
python對函式式程式設計提供部分支援,由於python允許使用變數,所以python不是純函式式程式語言。
數學表示式:(1+2)*3-4
# 面向過程var a = 1 + 2
var b = a * 3
var c = b - 4# 函式式
var result = subtract(multiply(add(1, 2), 3), 4)
函式式程式設計的語言:lisp, hashshell,erlang
形參與實參
>>> def test(a, b): #a,b就是形參
(a)...
(b)...
>>> test(1, 2) #
1,2就是實參
12
預設引數(宣告時)
>>> def test(a, b=2): #這裡的預設引數就是b
(a)...
(b)...
>>> test(1)
12
位置引數與關鍵字引數(呼叫時)
>>> deftest(a, b, c):
...
(a)...
(b)...
(c)...
>>> test(1,c=2,b=3) #
這裡的1就是位置引數,2和3是關鍵字引數13
2
不固定引數
*args:把對應的位置引數放到元組裡
**kwargs:把對應的關鍵字引數放到字典裡
>>> def test(*args, **kwargs):...
(args)
...
(kwargs)
...>>> test(1,2,3,a=4,b=5) # 等價於》 test(*[1,2,3], **)
(1, 2, 3)
宣告函式時,不固定引數一定要放在位置引數和預設引數的後面
呼叫函式時,關鍵字引數一定要放在位置引數的後面
python 函式式程式設計和引數
return的三種情況,如果不寫,返回none,如果寫乙個就返回寫的那個,如果多個,就放在乙個元組裡返回,還有如果返回是要給函式沒有括號,就返回這個函式。如果有括號,就返回這個函式執行後的結果,然後在返回返回值。def test1 print hello def test2 print hello ...
函式式程式設計中的引數
函式式程式設計中引數使用的學習筆記 def test x,y,z print 引數x x print 引數y y print 引數z z test a b z 實參與形參一一對應 x a y b z z print test y a x b z c 關鍵引數呼叫,跟形參位置無關 x b y a z ...
ios 函式式程式設計與響應式程式設計
ios函式式程式設計 響應式程式設計概念 如果想再去呼叫別的方法,那麼就需要返回乙個物件 如果想用 去執行,那麼需要返回乙個block 如果想讓返回的block再呼叫物件的方法,那麼這個block就需要返回乙個物件 即返回值為乙個物件的block 在網上流傳乙個非常經典的解釋 響應式程式設計的概念 ...