在python中用什么定义函数,Python中函数的用法

  在python中用什么定义函数,Python中函数的用法

  部分功能?相信很多朋友看到这个内容都会很困惑。想想他们都学了什么,好像很少有偏函数的。这样不寻常的内容怎么看得懂?边肖为你整理了部分功能的所有亮点,详情如下~

  偏函数 partial 应用

  

  当执行该函数时,应该使用所有必要的参数来调用它。但是,有时在调用函数之前可以预先知道参数。在这种情况下,可以预先使用函数的一个或多个参数,从而可以用更少的参数调用该函数。

  Partial函数以要承载的函数作为partial()函数的第一个参数,原函数的所有参数依次为partial()函数的后续参数,除非使用关键字参数。

  举一个常见的例子来说明:

  我们实现了一个余数函数,对于整数100,我们可以得到不同数m的100%m的余数。

  fromfunctoolsimportpartial

  国防部长:

  returnn%m

  mod _ by _ 100=部分(mod,100)

  printmod(100,7)#2

  printmod_by_100(7)#2

  6px;">下面再看一个例子,讲的是如何进行不同的进制转换。

  

fromfunctoolsimportpartial

  

  bin2dec=partial(int,base=2)

  printbin2dec('0b10001')#17

  printbin2dec('10001')#17

  

  hex2dec=partial(int,base=16)

  printhex2dec('0x67')#103

  printhex2dec('67')#103

关于偏函数,可以对现有函数进行加强。

  

>>>importfunctools

  >>>int2=functools.partial(int,base=2)#把int的转换设为二进制了,这里base是int函数表示进制的参数。

  >>>int2('1000000')

  64

  

  >>>int2('1010101')

  85

在重设之后, 也可以在函数调用时传入其他值:

  

>>>int2('1000000',base=10)#这里base变成了10,覆盖了已设的默认值2。

  1000000

注意这里在创建新的偏函数后,依旧可以更改已经设置的默认值,但是必须清晰指出是更改了 base 的值。

  

否则如果直接传如一个数值会报错:

  

int2('100',10)#报错,10前未加base=,不能分辨这是传给base的

原因如下:

  

创建偏函数时,实际上可以接收函数对象、*args 和 **kw 这 3 个参数,当传入:

  

int2=functools.partial(int,base=2)#int是函数对象,base=2是**kw,没有传入*args参数

实际上固定了 int() 函数的关键字参数 base,也就是:

  

int2('10010')

相当于:

  

kw={'base':2}

  int('10010',**kw)#如果不指明base=2而只是传入2的话,那么2被认为是*args的值

当传入:

  

max2=functools.partial(max,10)#这里的10显然就是作为*args里的值传入的

实际上会把 10 作为 *args 的一部分自动加到参数列表里去,也就是:

  

max2(5,6,7)#原本有*args的列表,然后会把10再加进去

相当于:

  

args=(10,5,6,7)

  max(*args)

  结果为10。

  

以上就是关于python的偏函数的用法,如需了解更多python实用知识,点击进入PyThon学习网教学中心

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: