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

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

Susan Sarandon
Susan Sarandon原创
2024-12-08 06:35:13443浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn