Python函数内import和模块顶部import的区别

模块顶部import

  • 优点
    • 可读性好
    • 大多数情况下可以提高加载速度
  • 缺点
    • 新手容易犯循环依赖导致的ImportError的错误
    • 某些时候会降低加载速度,比如被导入的模块非常大,而本模块的初始化不需要被导入模块

函数/方法内部import

  • 优点
    • 某些时候能够提高加载速度,因为直到函数被执行时才会去加载
    • 可以避免模块间循环引用产生的ImportError错误
  • 缺点
    • 可读性较差,难以一目了然地知道当前模块依赖于哪些额外的模块
    • 如果测试不完整,而被导入的模块有错误,则运行过程中会产生不可预估的错误

总结

应该使用模块顶部导入的方式,除非一定要使用函数内部导入的方式才能完成工作。

import 相关最佳实践

参考Python编码最佳之最佳实践

  • 版权声明:自由转载-保留署名-禁止商用-禁止演绎(知识共享4.0许可协议)
  • 发表时间:2014-11-26 10:20:26
  • 最后更新:2016-04-20 14:00:22
  • 永久链接:http://aju.space/2014/11/26/the-difference-between-module-import-and-function-import.html