Eri*_*got 5 python import program-entry-point pep8 pep
该PEP 8建议模块在节目开始进口.
现在,我觉得在主程序开始时(即之后if __name__ == '__main__')导入其中一些是有道理的.例如,如果主程序从命令行读取参数,我倾向于import sys在主程序的开头执行:这样,sys当代码用作模块时不必导入,因为没有必要,在这种情况下,用于命令行参数访问.
这对PEP 8的侵权有多严重?我应该避免这样做吗?或者修改PEP 8是否合理?
我真的不能告诉你这有多糟糕.
但是,我通过仅在第一次使用时导入某些库,大大提高了Web应用程序的性能(响应时间和负载).
顺便说一句,以下内容也来自PEP 8:
但最重要的是:知道何时不一致 - 有时风格指南不适用.如有疑问,请使用您的最佳判断.查看其他示例并确定最佳效果.并且不要犹豫!
总的来说,我不认为后期导入可能不需要的模块会有很大的危害.
但是sys我肯定会提前导入,在顶部.这是一个很常见的模块,你很可能在脚本的其他地方使用sys而不会注意到它并不总是被导入.sys也是Python本身总是加载的模块之一,因此您不会通过避免导入来保存任何模块启动时间(不管是否为sys启动了很多).