> 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.partialmethod.md).

# functools.partialmethod()

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

Вернуть новый дескриптор **partialmethod**, который ведет себя как [partial](/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.partial.md), за исключением того, что он предназначен для использования в качестве определения метода, а не для прямого вызова.

***func*** должен быть [дескриптором](https://docs.python.org/3/glossary.html#term-descriptor) или вызываемым (оба объекта, как и обычные функции, обрабатываются как дескрипторы).

Когда ***func*** является дескриптором (например, обычная функция Python, [classmethod ()](https://docs.python.org/3/library/functions.html#classmethod), [staticmethod ()](https://docs.python.org/3/library/functions.html#staticmethod), **abstractmethod ()** или другой экземпляр **partialmethod**), вызовы `__get__` делегируются базовому дескриптору, а в качестве результата возвращается соответствующий [объект partial](/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/obekty-partial.md).

Когда ***func*** вызывается без дескриптора, соответствующий связанный метод создается динамически. Это ведет себя как обычная функция Python при использовании в качестве метода: аргумент ***self*** будет вставлен в качестве первого позиционного аргумента, даже перед ***args*** и ***keywords***, предоставленными конструктору **partialmethod**.

Пример:

```python
>>> class Cell:
...     def __init__(self):
...         self._alive = False
...     @property
...     def alive(self):
...         return self._alive
...     def set_state(self, state):
...         self._alive = bool(state)
...     set_alive = partialmethod(set_state, True)
...     set_dead = partialmethod(set_state, False)
...
>>> c = Cell()
>>> c.alive
False
>>> c.set_alive()
>>> c.alive
True
```

*Новое в версии 3.4*.
