编程语言
首页 > 编程语言> > python导入-公共或私有约定

python导入-公共或私有约定

作者:互联网

按照Python约定,是否应该将模块的导入视为其公共接口的一部分?

我有一些这样做的代码:

foo.py:

from a import b

bar.py:

from foo import b

我试图决定是否重构bar.py以直接从a导入b.我想在某些情况下,您希望foo.py控制bar.py使用的b的实现.但是,如果不是这种情况,将两个模块以相同的方式导入是否是更好的做法?

解决方法:

In Python convention, should a module’s imports be considered part of it’s public interface, or not?

模块的公共API是该模块记录其公共API的任何内容.如果模块foo记录了它提供的b,则b是其公共API的一部分,无论b实际上是在foo中定义还是从其他位置导入.

许多模块将其代码分成多个文件,并将所有片段一起导入一个模块.例如,collections模块将其部分代码放入C _collections模块中,然后执行

from _collections import deque, defaultdict

deque和defaultdict无疑是集合的公共API的一部分.

如果模块导入了某些不应该包含在其公共API中的内容,则将其作为_thing导入通常是一个好主意,并在其上加下划线以表示所导入的内容是实现细节.

标签:import,conventions,python
来源: https://codeday.me/bug/20191027/1940598.html