python - 使用 'import module' 还是 'from module import' ?

标签 python python-import

我试图找到一个综合指南,说明最好使用 import module 还是 from module import。我刚开始使用 Python,我正在尝试从最佳实践入手。

基本上,我希望有人能分享他们的经验、其他开发人员的偏好以及避免任何陷阱的最佳方法是什么?

最佳答案

import modulefrom module import foo 的区别主要是主观的。选择您最喜欢的一个,并在使用时保持一致。以下几点可以帮助您做出决定。

导入模块

  • 优点:
    • 减少对 import 语句的维护。无需添加任何额外的导入即可开始使用模块中的其他项目
  • 缺点:
    • 在您的代码中输入 module.foo 可能会很乏味且多余(可以通过使用 import module as mo 然后输入 mo.foo)

从模块导入 foo

  • 优点:
    • 使用 foo
    • 减少输入
    • 更多地控制可以访问模块的哪些项目
  • 缺点:
    • 要使用模块中的新项目,您必须更新 import 语句
    • 你失去了关于 foo 的上下文。例如,与 math.ceil()
    • 相比,ceil() 的作用不太清楚

任何一种方法都可以,但不要使用from module import *

对于任何合理的大型代码集,如果您 import * 您可能会将其固定到模块中,无法删除。这是因为很难确定代码中使用的哪些项目来自“模块”,因此很容易达到您认为不再使用 import 的地步,但它是很难确定。

关于python - 使用 'import module' 还是 'from module import' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/710551/

相关文章:

python - 如何使用参数从 R 调用 python 脚本

python - 当我通过管道使用 sh ( echo "docker-compose"| sh ) 时出现 "docker-compose... "错误

python - 自动创建requirements.txt

python-3.x - pip 如何告诉 Python 如何导入 C 扩展

python-3.x - 我什么时候应该使用 pytest --import-mode importlib

python - 上传文件 - 使输入可见(错误 : ElementNotVisibleException)

Java EE updatetool 出现 Python 解码错误

python - 快速 Tkinter 格式化问题

python - 从父文件夹导入模块

python - 使用 import random,使用 random.choice 抛出 AttributeError