首页 > 解决方案 > 使用 Python collections.namedtuple 制作具有干净界面的 DTO?

问题描述

我是来自 Java 背景的 Python 新手,我正在尝试通过扩展集合 来构建 DTO 来包装我的数据,就像使用 Java 集合框架一样。

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)

我也读过,似乎没有回答这个具体问题。

标签: pythoncollectionsdto

解决方案


推荐阅读