oro*_*aki 4 python optimization premature-optimization python-import
在如Django的框架,我会想象,如果一个页面上的用户的土地(运行被称为"some_page"视图功能),你必须在模块的前8吨的进口不相关的这种看法,你在这些进口上浪费周期.我的问题是:
注意:这可以被认为是过早优化,但我对这个论点不感兴趣.让我们假设,实际理论的缘故,认定这是一起交通负荷已完成的网站,需要在每一个可能的方式进行优化,以及应用程序代码,以及DB已经由50博士的数据库管理员和开发人员经过充分的优化,这些进口是唯一剩下的东西.
Ale*_*nor 15
不,不要这样做.在Web上的正常python执行环境(mod_wsgi,gunicorn等)中,当进程启动时,将执行这些导入,然后所有后续请求都不会重新执行脚本.如果将导入放在函数中,则每次调用函数时都必须处理它们.
是的,在功能级别导入是一种不好的做法.通过在模块顶部使用更智能的导入,您可以创建一次性的小成本.但是,如果在函数中放置导入,则每次运行该函数时都会承担导入的成本.因此,只需导入模块顶部,而不是导入函数.
您可以采取一些措施来清理和改进您的进口:
from x import *import x此外,将导入放在模块的顶部是一种风格问题.PEP 8说模块需要在顶部导入是有原因的.它更具可读性和可维护性.
最后,某些函数级别的导入将导致将来出现兼容性问题,因为from x import *在函数级别上无效的Python 3.x.