关于效率和多功能定义的导入语句

时间:2015-07-24 09:49:16

标签: python

关于Python编程的效率,我有一个基本的问题。

假设在单个文件中,已定义了大约20个不同的函数。某些功能非常专业,并导入一些其他功能不需要的特定模块。

  1. 一种选择是将所有import语句放在文件的开头。
  2. 另一个选项是具有特定于嵌入在函数定义中的每个函数的导入语句
  3. 对于代码效率而言,这是一种更好的做法,一般来说,对于良好的pythonic实践?

1 个答案:

答案 0 :(得分:1)

按照Style Guide for Python Code,样式导入应该放在文件的顶部,但是当您想要破坏样式时会出现这种情况(如果我记得,标准库也会出现这种情况。正确地)。

在执行放置代码时,Imports将作为常规语句执行。这意味着文件开头的导入将在读取(即导入)文件时执行,但如果将其放入函数中,则只要调用该函数,它就会执行。

这会在调用函数时给出性能损失,但请注意实际导入只执行一次。如果函数不太可能被调用,可能有一个好处,即通过将导入放在使用它的函数中来推迟导入(特别是如果它是一个缓慢的加载模块)。

我看不出你为什么要把导入放在另一个地方而不是你提到的地方。并且毫无理由地打破编码风格并不是一个好主意。

底线是除了特殊情况之外,你应该在文件的开头有所有的import语句(它在1000中提供999倍的性能,在10中有10倍的pythonic)。