导模块小技巧
规范的导模块
- 不要使用
from module name import *
,这样做会混乱或者说污染当前执行文件的名称空间,难以分辨名字到到底是被导模块的还是当前执行文件名称空间的。 - 在文件的顶部导模块,且每行一个导入,尽量避免当行导入多个模块或名字。
- 导入顺序:内置模块、第三方模块、自定义模块。
非顶部导入模块的场景
- 避免循环导入问题。
- 只有一个函数使用这个模块,可以将这个模块放在函数内导入,可以减少程序启动时的开销。
- 有些模块的导入与否依据不同的执行条件,此时可以妨碍局部函数内导入。
- 有些模块需要其他模块提供条件后才能使用,此时不需要将该模块放在文件顶部,可以稍向下放置在合适位置。
模块首次导入需要一定的开销、但是以后再次导入时几乎不需要开销。
只要模块导入过,即使模块名已经移出了作用域,在内存中也可以使用该模块,可通过sys.modules
查看。