import dataclasses dataclasses.fields(class_or_instance)
class_or_instance
- Функция fields()
модуля dataclasses
возвращает кортеж объектов Field
, которые определяют поля для этого класса данных.
Принимает либо класс данных, либо экземпляр класса данных. Если не передан класс данных или его экземпляр, то вызывается ошибка TypeError
.
Функция dataclasses.fields
НЕ возвращает псевдополя typing.ClassVar
или переменные только для инициализации InitVar
.
Field
.from dataclasses import dataclass, fields @dataclass class Person: name: str age: int >>> p = Person('Mike', 49) >>> f = fields(p) >>> f # ( # Field(name='name',type=<class 'str'>, # default=<dataclasses._MISSING_TYPE object at 0x7f25160732e0>, # default_factory=<dataclasses._MISSING_TYPE object at 0x7f25160732e0>, # init=True,repr=True,hash=None,compare=True, # metadata=mappingproxy({}),_field_type=_FIELD), # Field(name='age',type=<class 'int'>, # default=<dataclasses._MISSING_TYPE object at 0x7f25160732e0>, # default_factory=<dataclasses._MISSING_TYPE object at 0x7f25160732e0>, # init=True,repr=True,hash=None,compare=True, # metadata=mappingproxy({}),_field_type=_FIELD) # ) >>> f[0].type # <class 'str'> >>> f[1].name # 'age'