Skip to main content
 首页 » 编程设计

python之可以在 Python 模块之间交换元组吗

2025年05月04日10arxive

我有一个由很少模块(大约 4 个左右)组成的小型 Python 程序。主模块创建一个元组列表,从而代表许多记录。这些元组通过返回它们的简单函数(例如,get_records())可供其他模块使用。

不过我不确定这是否是好的设计。问题在于其他模块需要知道元组中每个元素的索引。这增加了模块之间的耦合,并且对于想要使用主模块的人来说不是很透明。

我可以想到几个替代方案:

  1. 使元组元素的索引值可用作模块常量(例如,IDX_RECORD_TITLE、IDX_RECORD_STARTDATE 等)。这避免了像 title = record[3] 这样的魔术数字的需要。

  2. 不使用元组,而是创建一个记录类,并返回这些类对象的列表。优点是类方法将具有 self 解释的名称,例如 record.get_title()。

  3. 不要使用元组,而是使用字典。所以在这种情况下,该函数将返回一个字典列表。优点是字典键也是不言自明的(尽管使用该模块的人需要知道它们)。但这似乎是一个巨大的开销。

我发现元组是 Python 的一大优势(非常容易传递复合数据而无需类/对象的编码开销),所以我目前使用 (1),但仍然想知道什么是最好的方法.

请您参考如下方法: