Python Glossary English

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

inspect.ismemberdescriptor()

дескрипторы

Проверяет, что объект — member-дескриптор: поле фиксированного места в объекте, как записи __slots__ или поля C-структур.

Синтаксис

inspect.ismemberdescriptor(object) -> bool

Самый частый источник — ваш же __slots__: каждое имя слота превращается в member-дескриптор в __dict__ класса. Через экземпляр вы получите значение, а у незаполненного слота — AttributeError, хотя имя в классе есть. property сюда не относится. Как и isgetsetdescriptor, это деталь реализации CPython.

Примеры

import inspect
class Point:
    __slots__ = ('x', 'y')
print(inspect.ismemberdescriptor(Point.__dict__['x']))  # → True
p = Point()
p.x = 1
try:
    p.y
except AttributeError:
    print('слот y пуст')  # → слот y пуст

См. также

Частые ошибки

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