functools.partial()

functools.partial(func, /, *args, **keywords)

Возвращает новый объект partial, который при вызове будет вести себя как func, вызываемый с позиционными аргументами args и ключевыми аргументами keywords. Если вызову передаются дополнительные аргументы, они добавляются к args. Если предоставляются дополнительные аргументы ключевого слова, они расширяют и переопределяют ключевые слова. Примерно эквивалентно:

def partial(func, /, *args, **keywords):
    def newfunc(*fargs, **fkeywords):
        newkeywords = {**keywords, **fkeywords}
        return func(*args, *fargs, **newkeywords)
    newfunc.func = func
    newfunc.args = args
    newfunc.keywords = keywords
    return newfunc

partial () используется для частичного приложения функции, которое «замораживает» некоторую часть аргументов функции и/или ключевых слов, в результате чего создается новый объект с упрощенной подписью. Например, partial () можно использовать для создания вызываемого объекта, который ведет себя как функция int (), где базовый аргумент по умолчанию равен двум:

>>> from functools import partial
>>> basetwo = partial(int, base=2)
>>> basetwo.__doc__ = 'Convert base 2 string to an int.'
>>> basetwo('10010')
18

Last updated