首页 > 后端开发 > Python教程 > 顶部导入还是不导入:提前导入比延期导入更高效吗?

顶部导入还是不导入:提前导入比延期导入更高效吗?

Susan Sarandon
发布: 2024-12-08 06:35:13
原创
398 人浏览过

To Import or Not to Import at the Top: Is Early Importing More Efficient Than Deferred Importing?

导入语句:顶部还是底部?

PEP 8 规定导入语句位于模块的顶部,这让一些人质疑导入未使用的类或尽早发挥作用。进行比较:

class SomeClass(object):

    def not_often_called(self):
        from datetime import datetime
        self.datetime = datetime.now()
登录后复制

from datetime import datetime

class SomeClass(object):

    def not_often_called(self):
        self.datetime = datetime.now()
登录后复制

延迟导入比提前导入更高效吗?

虽然模块导入很快,它确实会产生成本。通过将导入放在模块的开头,这种微不足道的费用只需支付一次。然而,将导入限制在函数内部会延长每次函数调用的运行时间。

因此,为了获得最佳效率,请将导入放在最前面。仅当分析显示性能瓶颈时才考虑延迟导入。

除了效率之外,延迟导入的其他理由包括:

  • 可选库支持: 防止可选库出现时代码损坏不存在。
  • 插件初始化:插件初始化文件中的导入允许在不使用的情况下加载模块。 Bazaar 插件中存在利用 bzrlib 延迟加载机制的示例。

以上是顶部导入还是不导入:提前导入比延期导入更高效吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板