导入语句的位置:顶部还是底部?
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()
问题出现了 - 哪种方法更有效?
导入性能
虽然模块导入很快,但它们不是瞬时的。因此:
因此,为了获得最佳效率,明智的做法是将导入放在模块的顶部。尽管如此,当分析显示出明显的性能优势时,可以考虑在函数内移动导入。
延迟导入的原因
除了效率问题之外,延迟导入在某些情况下也有理由:
总之,虽然 PEP 8 将导入定位在模块开头的指南确保了一致性和可读性,但性能考虑有时可能需要延迟导入。然而,此类决策应基于分析数据,以识别瓶颈并有效优化性能。
以上是顶部还是底部:我应该将 Python 导入放在哪里才能获得最佳性能?的详细内容。更多信息请关注PHP中文网其他相关文章!