все Python 3inspectфункция
inspect.isgetsetdescriptor()
дескрипторы
Проверяет, что объект — getset-дескриптор: атрибут C-типа с геттером и сеттером на C, например function.__code__.
Синтаксис
inspect.isgetsetdescriptor(object) -> bool
Это деталь реализации CPython: в других интерпретаторах функция может всегда давать False. Свой property на Python сюда не относится — getset бывает только у типов, написанных на C. Найти такой атрибут можно в __dict__ встроенного типа, а не через экземпляр: f.__code__ вернёт уже объект кода. Для «любого дескриптора данных» надёжнее isdatadescriptor.
Примеры
import inspect, types
code_attr = types.FunctionType.__dict__['__code__']
print(inspect.isgetsetdescriptor(code_attr)) # → True
print(inspect.isgetsetdescriptor(property(lambda s: 1))) # → False
print(inspect.isdatadescriptor(code_attr)) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности