Сообщить об ошибке.

Функция fields() модуля dataclasses в Python

Просмотр объектов Field класса данных

Синтаксис:

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'