2017年7月30日 星期日

[Python] Partial function

在Python中有許多偏函數( Partial function)可以使用,常見的就是string的轉換
ex :

int('50') #50

這個例子就是把string type的50轉換成int的50,而且是10進制

那好,問題來了,能不能變成8/16等進制呢?可以,就是加上base的參數,沒有加上的話,默認會是10進制

ex :

int('50') #50
int('50',base=8)  #40
int('50',base=16) #80

在python中有一個工具叫做functools,理面整合許多Partial function,因此針對上面的例子可以改寫為

ex:

import  functools

int2=functools.partial(int,base=8)

int2('50') # 40

簡單方便的用法,但也不是說不能改喔
雖然定義了默認的轉換是8,但可以手動加上base參數轉成想要的

ex:

int2('50',base=16) #80

其實這樣的用法只是相當於固定原有函式的參數默認值,所以實際上是可以修改的,寫法只是方便調用罷了


沒有留言:

張貼留言

[Python] Partial function

在Python中有許多偏函數( Partial function)可以使用,常見的就是string的轉換 ex : int('50') #50 這個例子就是把string type的50轉換成int的50,而且是10進制 那好,問題來了,能不能變成8...