2010-03-19 31 views
1

我試圖採用一些最佳實踐來保持我的python代碼的有效性。我聽說在循環中訪問一個成員變量會導致循環的每次迭代都會查找字典,所以我將它們緩存在局部變量中以在循環中使用。在循環語句中訪問python類成員容器效率低下嗎?

我的問題是關於循環語句本身......如果我有下面的類:

class A(object): 
    def __init__(self) 
     self.myList = [ 'a','b','c', 'd', 'e' ] 

是否在成員函數下面的代碼招致一個,或一個每循環迭代(5 )字典查找?

for letter in self.myList: 
    print letter 

IE瀏覽器,我應該採取下列模式,如果我關心效率...

localList = self.myList 
for letter in localList: 
    print letter 

或者是實際效率較低,由於局部變量分配?

請注意,如果我關心代碼開發的整體效率,那麼早期優化是一個危險的陷阱。這裏我具體詢問代碼的效率,而不是編碼。

+0

Thanks Ignacio! – Dave 2010-03-20 04:23:06

回答

6

self.myList創建迭代器,並使用該迭代器。對於迭代,沒有其他額外的查找在self上完成。