按照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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。