Python Dataclass - получение метаданных из имени атрибута - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть Dataclass, который выглядит следующим образом:

@dataclass
class Example:
    smtng: int = field(init=True, metadata={'int_name':"Thing",'ext_name':"it"})
    smtng_else: str = field(init=True, metadata={'int_name':"other",'ext_name':"that"})

, поскольку вы можете видеть, что у метаданных есть external и внутренние поля имени, которые я хотел быполучить доступ к ним через функции, например, get_ext_name (attribute_name) ->, которые будут возвращать имя атрибута под метаданными dict "ext_name"

, есть ли изящный способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 06 ноября 2019

Так что я нашел этот способ сделать это благодаря vibhu4agarwal на GeeksForGeeks.

Добавление этого метода в класс работает:

def ext_name(self, attribute_name):
    return self.__dataclass_fields__[attribute_name].metadata['ext_name'])

если есть лучший обходной путь, который я бы хотелпосмотреть

вот ссылка на статью: https://www.geeksforgeeks.org/data-classes-in-python-set-3-dataclass-fields/

...