Python Glossary English

Python 3.11+inspectфункция

inspect.ismethodwrapper()

дескрипторы

Проверяет, что объект — method-wrapper: специальный метод встроенного типа, уже связанный с экземпляром, как (1).__add__.

Синтаксис

inspect.ismethodwrapper(object) -> bool

Пару надо различать: int.__add__ — дескриптор (wrapper_descriptor), а (1).__add__ — method-wrapper, связанный с числом. ismethod для него False, isbuiltin — тоже False, поэтому код, ищущий «методы» через ismethod, такие объекты пропускает. Они появляются и у ваших объектов: obj.__str__, унаследованный от object, — тоже method-wrapper.

Примеры

import inspect
class A: pass
print(inspect.ismethodwrapper((1).__add__))  # → True
print(inspect.ismethodwrapper(int.__add__))  # → False — это дескриптор
print(inspect.ismethodwrapper(A().__str__), inspect.ismethod(A().__str__))  # → True False

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности