Python Glossary English

Python 3.7+dataclassesфункция

dataclasses.is_dataclass

интроспекция

True, если объект (класс или экземпляр) является dataclass.

Синтаксис

dataclasses.is_dataclass(obj)

Главная ловушка — True возвращается и для класса, и для его экземпляра, поэтому для проверки «передали именно объект» нужно дополнительно убедиться, что это не тип (isinstance(obj, type)). Проверка нужна перед asdict/astuple/fields: на не-датаклассе они бросают TypeError, а не возвращают пустой результат. Наследники датакласса тоже считаются датаклассами, даже если сами декоратором не помечены.

Примеры

import dataclasses
@dataclasses.dataclass
class P:
    x: int
print(dataclasses.is_dataclass(P))   # → True
print(dataclasses.is_dataclass(42))  # → False

См. также

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