1)int()函數(shù)還提供額外的base參數(shù),默認(rèn)值為10。如果傳入base參數(shù),就可以做N進(jìn)制的轉(zhuǎn)換:
>>> int('12345', base=8)
5349
即該數(shù)是一個(gè)八進(jìn)制數(shù),將其轉(zhuǎn)換成為一個(gè)十進(jìn)制的數(shù)
def int2(x, base=2):
? ? return int(x, base)
>>> int2('1000000')
64
2)簡(jiǎn)單總結(jié)functools.partial的作用就是,把一個(gè)函數(shù)的某些參數(shù)給固定住(也就是設(shè)置默認(rèn)值),返回一個(gè)新的函數(shù),調(diào)用這個(gè)新函數(shù)會(huì)更簡(jiǎn)單。
>>> import functools
>>> int2 = functools.partial(int, base=2)
注意到上面的新的int2函數(shù),僅僅是把base參數(shù)重新設(shè)定默認(rèn)值為2,但也可以在函數(shù)調(diào)用時(shí)傳入其他值,即在函數(shù)int2()中間傳入base=10也是可行的
3)創(chuàng)建偏函數(shù)時(shí),實(shí)際上可以接收函數(shù)對(duì)象、*args和**kw這3個(gè)參數(shù)
3.1)當(dāng)使用(int,base=2)時(shí),固定了int()函數(shù)的關(guān)鍵字參數(shù)base 相當(dāng)于
kw = { 'base': 2 }
int('10010', **kw)
3.2)當(dāng)使用(max,10)時(shí),10作為*args的一部分自動(dòng)加入左邊進(jìn)行比較,相當(dāng)于
args = (10, 5, 6, 7)
max(*args)
4)當(dāng)函數(shù)的參數(shù)個(gè)數(shù)太多時(shí),建立一個(gè)新函數(shù)固定住原函數(shù)的部分參數(shù)進(jìn)行簡(jiǎn)化