from module import *
VSimport module
我知道的
我知道两者之间的区别,不同之处在于当你使用from module import *
时,你可以参考模块中的类,函数等,就像它们在文件中定义一样,它们是在自己导入的。
但是当您只使用import module
时,您必须在对象名称之前使用module.
来引用它。
问题所以我不知道的是为什么有时使用from module import *
而不是import module
被认为是不好的做法?
PEP 8规定
通配符导入(
from <module> import *
)应该避免,因为它们使名称空间中出现的名称不清楚,造成混淆包括阅读器和许多自动化工具。有一个可辩护的用途通配符导入的情况,这是为了重新发布内部接口作为公共API的一部分(例如,覆盖纯的定义的接口的Python实现可选的加速器模块和定义