> For the complete documentation index, see [llms.txt](https://treasuremaster.gitbook.io/python-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.partial.md).

# functools.partial()

### &#x20;functools.partial(*func*, */*, *\*args*, *\*\*keywords*)

Возвращает новый [объект partial](/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/obekty-partial.md), который при вызове будет вести себя как ***func***, вызываемый с позиционными аргументами ***args*** и ключевыми аргументами ***keywords***. Если вызову передаются дополнительные аргументы, они добавляются к ***args***. Если предоставляются дополнительные аргументы ключевого слова, они расширяют и переопределяют ключевые слова. Примерно эквивалентно:

```python
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 ()](https://docs.python.org/3/library/functions.html#int), где базовый аргумент по умолчанию равен двум:

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