编程语言
首页 > 编程语言> > python-所有namedtuples应该放在单独的文件中吗?

python-所有namedtuples应该放在单独的文件中吗?

作者:互联网

我在Python代码库中使用了很多namedtuple,它们在整个.py文件中乱七八糟.将所有这些声明提取到一个单独的文件中是一种好习惯,还是应该将其保留在使用位置?

在某些情况下,其他模块需要在单独的模块中使用对namedtuple的引用,因为这是定义接口的方式-它们期望namedtuple.建议使用Python的方式组织各种namedtuple的方法,特别是对于跨模块引用的方法是什么?

解决方法:

用于确定命名元组放置位置的思维过程与用于其他任何代码行的思维过程相同:

>模块定义功能的逻辑单元.某些代码段可能永远不需要了解另一代码段或与之交互.这些边界线的标识是将代码分解为模块的强烈提示.
>模块封装接口.它们使您有机会定义与所有其他代码段进行交互的API,同时隔离其在模块中的实现细节.在模块中隔离代码可以更轻松地知道在保留API的情况下要更改实现时将注意力集中在哪里.

确定逻辑单元(即模块)和逻辑单元将通过其交互的API后,应该更清楚地将命名元组放置在何处.

如果一个模块X需要导入另一个模块Y,除了命名命名元组的定义外,别无其他原因,那么将命名元组放置在单独的模块Z中可能是有意义的,因为您已经找到了边界线.

但是,如果无论如何X都需要导入Y,那么如果将namedtuple放在一个单独的模块中,那么实际上并不会有太大的区别,因为在所有导入Y的地方,您也都会导入Z.

现在,通常情况下X并不需要Y提供的所有功能,因此您可能会倾向于将X所需的较小位分离到单独的模块中.但是,在某个特定的点分解成自己的模块后,就变得疯狂了-拥有许多小模块而不是一个中型模块变得更加繁重.这条线的位置-恰好是中等大小-取决于品味以及您所设想的功能的逻辑单元.

标签:python-2-7,namedtuple,code-organization,python
来源: https://codeday.me/bug/20191029/1958403.html