【问题标题】:Best practices for imports for installed package已安装包的导入最佳实践
【发布时间】:2015-01-19 03:02:04
【问题描述】:

假设我有一个通过 setup.py 安装的包“傻瓜”,我是主要开发人员。在包内调用导入的首选方法是什么?想象一下,傻瓜有两个模块(a.py,b.py),我需要在 c.py 中访问它们:

  • 愚蠢的图书馆
    • a.py
    • b.py
    • c.py

在 c.py 中,导入这些的首选方式是什么?为什么?

from a import blah

from foolibrary.a import blah

对比

from .a import blah

这三个我都见过,通常使用foolibrary.a import 样式,但大多是出于习惯。

【问题讨论】:

    标签: python import distutils


    【解决方案1】:

    相对导入语法from .a import blah现代的做事方式。请参阅 PEP 328,https://www.python.org/dev/peps/pep-0328/,了解为什么它优于替代方案。 (虽然 PEP 8 更喜欢绝对导出,但它也允许包内相对导入作为可接受的替代方案)。

    就个人而言,顺便说一句,我总是只导入模块,而不是从模块内部导入“东西”(函数、类等)。

    但是,这是一个远非通用的样式约束(它,但是,https://google-styleguide.googlecode.com/svn/trunk/pyguide.html 的一部分——并且已经在 Google 工作了 10 年,并帮助塑造了部分 Python实践和风格,我可以理解地偏向于这种风格:-)。

    【讨论】:

    • 谢谢亚历克斯。我很感激你这样的人会花时间回答我的低级问题。是的,我也在尝试更专注于只导入模块,令人惊讶的是,考虑到它真正需要的努力是多么的艰巨。我很快就会申请谷歌匹兹堡,并且一定会开始密切关注这种风格。谢谢分享。
    猜你喜欢
    • 2016-10-12
    • 2021-04-24
    • 1970-01-01
    • 2017-05-12
    • 2018-03-24
    • 2011-08-16
    • 2012-01-23
    • 1970-01-01
    • 2011-08-04
    相关资源
    最近更新 更多