Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 进口声明的使用指南_Python - Fatal编程技术网

Python 进口声明的使用指南

Python 进口声明的使用指南,python,Python,可能重复: 从python标准库导入时,关于以下选项的选择有哪些指导原则 import foo from foo import bar 考虑因素是什么?这是脚印吗?或者只是一个潜在的名字冲突 如果模块具有最小的字符串处理,这会不会太过分 from string import split 如果一个程序有多个模块,由一个模块完成的导入结果是否可供程序中的后续模块使用 如果导入的模块仅在冷代码中需要,那么将该导入嵌入包含冷代码的逻辑块中是否被认为是良好的形式 如果你使用pyflakes,它会抱怨

可能重复:

从python标准库导入时,关于以下选项的选择有哪些指导原则

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:我认为它不是:处理绝对导入与相对导入,而不是导入模块或希望从该模块导入的对象。您始终可以将名称重新绑定到本地范围,实际上,没有必要在进口时这样做,污染全球范围。是的,这有点简化了。我将更新答案以反映这一点。