【发布时间】:2013-12-17 18:27:23
【问题描述】:
我的 IDE 已“更正”我的代码以将函数(和其他代码)转换为属性。我担心它可能效率低下。
@property
def output_all_children(self):
lh = ListHolder()
traverse_directories(self.start_directory, lh)
return lh.internal_list
这会执行一些繁重的 I/O 提升工作并且需要一些时间。我现在想知道由于效率原因这是否不正确。我想知道结果是否没有像我希望的那样被缓存。
如果多次访问此属性,是否每次都会重建并返回 lh.internal_list? 我会通过拥有一个类级别变量并在 self.start_directory 更改时更新它来纠正这个问题。
我看过这个: How to create decorator for lazy initialization of a property 它指的是一个只读属性,而我的是一个更新的属性
请不要盲目信任 IDE。我知道,这种想法引发了这个问题。
【问题讨论】:
标签: python performance python-3.x