我将编写(业余)代码,这比我之前使用的代码更加占用CPU和内存。我在其他代码中注意到有人赞成
import something
(...)
a = something.method()
在
from something import method
(...)
a = method()
使用一种风格与另一种风格是否具有性能优势?
PEP-0008 discusses imports但在阅读本文后,我的未经训练的眼睛看来,上述两种情况更多的是品味/风格。我更喜欢输入a = something.method()
因为我会更好地理解我的代码。这就是说,如果这真的影响了性能,我会改变。
注意:问题不是个人偏好,而是两种导入样式的实际性能影响(或缺乏)。这方面很好地讨论in another question。
答案 0 :(得分:3)
性能的唯一区别是一个包含额外的属性查找:
a = something.method()
而其他人直接引用method
:
a = method()
由绑定名称时执行查找的from ... import ...
语句抵消。这些操作之间的差异可忽略不计。
导入实际上只是将名称绑定到已加载的对象。 Python如果尚未可用,则首次加载整个模块,但是如何绑定名称对加载的内容没有影响。
因此,这是一种风格选择。人们喜欢能够一目了然地确定物体来自何处。导入模块而不是模块中的对象为您提供了这种可视化参考。