这是一种更好的做法 - 全球进口或本地进口

Asw*_*esh 7 python django import

我正在开发django中的应用程序,我怀疑在全局级别导入库对内存或性能的影响是否比在本地(每个功能)级别导入.如果按功能或视图导入,单独需要的模块是否导入节省空间?或者这样做是否有任何负面影响?

Dan*_*man 14

您肯定必须注意到,几乎所有Python代码都会在文件顶部执行导入.这是有原因的:导入的开销很小,并且可能是您在进程生命周期中的某个时刻导入代码,因此您可以将其排除在外.

在函数级别导入的唯一好理由是避免循环依赖.

编辑您的评论表明您还没有理解Web应用程序通常如何工作,至少在Python中是这样.它们不会为每个请求启动新进程并从头开始导入代码.相反,服务器根据需要实例化进程,并且每个进程都会处理许多请求,直到它最终被终止.因此,有可能在这一生中,所有进口最终都需要.

  • 另外值得一提的是,PEP8中都提到了文件顶部的导入和[应该编写它们的顺序](http://www.python.org/dev/peps/pep-0008/#id16) . (3认同)

Ant*_*nko 5

进口报表开销

来自Python 性能技巧

将它们放置在函数内部以限制其可见性和/或减少初始启动时间通常很有用。尽管Python的解释器经过优化,不会多次导入同一个模块,但在某些情况下重复执行导入语句会严重影响性能。