python 函式組合

2022-02-11 05:18:20 字數 1271 閱讀 2700

額,是看 中看到的.

首先我們定義個函式類如下.

class

function(object):

def__init__

(self,f):

self.f =f

def__call__

(self,x):

return self.f(x)

嗯,很簡單,就是把乙個函式拖進來而已.呼叫也簡單.如下

但是如果把上面的函式稍稍擴充套件下就很好玩了.完整如下:

class

function(object):

def__init__

(self,f):

self.f =f

def__call__

(self,x):

return

self.f(x)

def__add__

(self,g):

defsum(x):

return self(x) +g(x)

return

function(sum)

def__mul__

(self,g):

defprod(x):

return self.f(x) *g(x)

return

function(prod)

def__radd__

(self,g):

return self +g

def__rmul__

(self,g):

return self * g

中間也沒什麼特別nx的**.都是很簡單的.但是組合起來就好玩了.在積分上的應用.

如果是積分和.如 $\int _0^\sin(x) + \cos(x) dx = \int _0^\sin(x) dx + \int _0^\cos(x) dx$也許不會有什麼問題.但是乘法就不同了.$\int _0^\sin(x) \times  \cos(x) dx = \int _0^\sin(x) dx \times  \int _0^\cos(x) dx (?)$.

使用function就可以很自然地寫出這類積分,測試**如下.(其中需要numpy和scipy的支援).

好了睡覺先..

函式組合應用

函式通道就是自左向右。function compose f,g function touppercase str function add str function split str function reverse str function compose return result var f...

Python引數組合

引數定義的順序必須是 必選引數 預設引數 可選引數 命名關鍵字引數 關鍵字引數 1 a,b為必選引數 c為預設引數 args為可變引數 kw為關鍵字引數 2def f1 a,b,c 0,args,kw 3print a b b,c args args,kw kw 45 引數定義的順序必須是 必選引數...

學習三 函式組合

純函式和柯里化很容易寫出洋蔥 函式組合就可以把細粒度的函式重新組合成乙個新的函式。函式組合案例 function compose fn1,fn2 function reverse array function first array const last compose first,reverse ...