【问题标题】:Why is it bad practice to use from module import *? [duplicate]为什么使用 from module import * 是不好的做法? [复制]
【发布时间】:2015-08-23 01:22:15
【问题描述】:

作为一种“习惯”,stackoverflow 和示例页面中的几乎每个人都使用import numpy as np 然后输入

t = numpy.arange(0,40000,4000)

我们为什么不/为什么使用from numpy import * 是不好的做法 然后输入

t = arange(0,40000,4000)

请给我理由。 (我猜: 1. 如果我们需要导入多个模块,不同模块中的某些函数会使用相同的名称。 2. 在import module == from module import *?,我可以看到这种“习惯”导致处理时间更快。)还有什么其他原因?

【问题讨论】:

标签: python module


【解决方案1】:

Python style guide 是这么说的:

应避免通配符导入 (from <module> import *),因为它们使命名空间中存在哪些名称变得不清楚,从而使读者和许多自动化工具感到困惑。通配符导入有一个可辩护的用例,即重新发布一个内部接口作为公共 API 的一部分(例如,用可选加速器模块中的定义覆盖接口的纯 Python 实现,以及哪些定义将被被覆盖是事先不知道的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    相关资源
    最近更新 更多