標籤:class att 函數式編程 subclass pytho sum 屬性 輸入 如何
什麼是函數式編程?
函數式編程(functional programming)是一種編程範式,也就是如何編寫程式的方法論。目前我們所熟知的是命令式編程,這裡的命令式程式設計語言泛指所有把修改變數的值當作最基本計算方式的語言,函數式程式設計語言指把一個程式的輸出定義為其輸入的數學函數的語言,純函數式編程沒有內部狀態的概念,也沒有副作用。
函數式編程的特點
1、函數即對象
函數可以直接賦給變數
2、有屬性和方法
>>> my_sum = sum>>> sum([1,2,3])6>>> my_sum([1,2,3])6>>> dir(my_sum)[‘__call__‘, ‘__class__‘, ‘__cmp__‘, ‘__delattr__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__le__‘, ‘__lt__‘, ‘__module__‘, ‘__name__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__self__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘]>>> my_sum.__name__‘sum‘
3、函數可以做參數
>>> def f(a,b):... return a + b... >>> def f1(func,a,b):... return func(a,b)... >>> f1(f,1,3)4
函數式編程和命令式編程的區別
目標:分別使用函數式編程和命令式編程實現 f(a,b,c,d) = (a+b)*c-d
命令式編程:
def f1(a,b,c,d): e = a + b f = e * c g = f - d return g#命令式編程實現ret = f1(a,b,c,d)
函數是實現:
def f_add(a,b): return a + bdef f_sub(a,b): return a - b def f_multi(a,b): return a * b#函數式編程實現ret = f_sub(f_multi(f_add(a,b),c),d)
python函數式編程