Python Glossary English

все Python 3inspectфункция

inspect.ismethoddescriptor()

дескрипторы

Проверяет, что объект — дескриптор метода: у него есть __get__, но нет __set__ и __delete__ (например, int.__add__, list.append).

Синтаксис

inspect.ismethoddescriptor(object) -> bool

Функции и классы под проверку не попадают, хотя у функции есть __get__: для них ismethoddescriptor возвращает False, потому что isfunction и isclass «обещают больше». Зато объекты classmethod и staticmethod, взятые из __dict__ класса, — дескрипторы методов. Типичное место встречи — list.append: это не builtin и не функция, а именно дескриптор метода.

Примеры

import inspect
class A:
    def m(self): pass
    @classmethod
    def cm(cls): pass
print(inspect.ismethoddescriptor(list.append))  # → True
print(inspect.ismethoddescriptor(A.__dict__['m']))  # → False — это функция
print(inspect.ismethoddescriptor(A.__dict__['cm']))  # → True

См. также

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