Python 进口声明的使用指南
可能重复: 从python标准库导入时,关于以下选项的选择有哪些指导原则Python 进口声明的使用指南,python,Python,可能重复: 从python标准库导入时,关于以下选项的选择有哪些指导原则 import foo from foo import bar 考虑因素是什么?这是脚印吗?或者只是一个潜在的名字冲突 如果模块具有最小的字符串处理,这会不会太过分 from string import split 如果一个程序有多个模块,由一个模块完成的导入结果是否可供程序中的后续模块使用 如果导入的模块仅在冷代码中需要,那么将该导入嵌入包含冷代码的逻辑块中是否被认为是良好的形式 如果你使用pyflakes,它会抱怨
import foo
from foo import bar
考虑因素是什么?这是脚印吗?或者只是一个潜在的名字冲突
如果模块具有最小的字符串处理,这会不会太过分
from string import split
如果一个程序有多个模块,由一个模块完成的导入结果是否可供程序中的后续模块使用
如果导入的模块仅在冷代码中需要,那么将该导入嵌入包含冷代码的逻辑块中是否被认为是良好的形式 如果你使用pyflakes,它会抱怨你没有使用你导入的东西 我发现,如果我只需要一个或两个函数/类,那么我将直接导入它们:如果我需要很多,我可以只使用名称空间版本foo.bar 这是要付出代价的。查找,因此,如果嵌套循环中有很多函数,那么最好直接导入函数,或者将函数重新绑定到本地名称
import foo
def bar(baz):
for qux in baz:
for i in range(100000):
foo.bar(qux, i)
要减少查找时间,请执行以下操作:
import foo
def bar:
foo_bar = foo.bar
for qux in baz:
for i in range(100000):
foo_bar(qux, i)
包含一个关于导入的部分,这是一个很好的开始。请阅读侧栏上“相关问题”下链接的许多重复问题。@RC:我认为它不是:处理绝对导入与相对导入,而不是导入模块或希望从该模块导入的对象。您始终可以将名称重新绑定到本地范围,实际上,没有必要在进口时这样做,污染全球范围。是的,这有点简化了。我将更新答案以反映这一点。