Использование Python collection.namedtuple для создания DTO с чистым интерфейсом? - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в Python из фона Java, и я пытаюсь создать DTO, чтобы обернуть мои данные , как я сделал бы с платформой Java Collections , расширив коллекцию.

public class MyDto<T> extends ArrayList<T> implements MyDtoInterface<T> { ... }

Я прочитал python-quick-and-dirty-datatypes-dto , и, похоже, это является основой для того, что мне нужно.Однако что я не могу понять из принятых ответов, так это как сделать dto типом, а не оболочкой.Принятым ответом является сценарий Python, а не класс.Я хочу избежать необходимости делать это:

class NamedDto(namedtuple):
    data = namedtuple("first", "second", "etc")

dto = NamedDto()
dto.data.first = 1
dto.data.second = 2
dto.data.etc = None
print(dto)

и вместо этого делать это:

dto = NamedDto()
dto.first = 1
dto.second = 2
dto.etc = None

и / или

dto = NamedDto(1,2,3)
print(dto.first)
print(dto.second)
print(dto.etc)

Я также прочитал,которые, кажется, не отвечают на этот конкретный вопрос.

...