2 частичный

partial функция создает частичное применение функции из другой функции. Он используется для привязки значений к некоторым из аргументов функции (или именованных аргументов) и производит вызываемый без аргументов , которые уже определенно.

 >>> from functools import partial
>>> unhex = partial(int, base=16)
>>> unhex.__doc__ = 'Convert base16 string to int'
>>> unhex('ca11ab1e')
3390155550

 

partial() , как следует из названия, позволяет частичную оценку функции. Давайте посмотрим на следующий пример:

 In [2]: from functools import partial

In [3]: def f(a, b, c, x):
   ...:     return 1000*a + 100*b + 10*c + x
   ...: 

In [4]: g = partial(f, 1, 1, 1)

In [5]: print g(2)
1112 

Когда g создается, f , который принимает четыре аргумента ( a, b, c, x ), также частично оценивали в течение первых трех аргументов, a, b, c, . Оценка f завершается , когда g называется, g(2) , который проходит четвертый аргумент f .

Один из способов думать о partial является регистром сдвига; вставляя один аргумент за раз в какую-то функцию. partial удобна в тех случаях , когда данные поступают в виде потока , и мы не можем передать более одного аргумента.