在循环语句中访问python类成员容器是否效率低下?

Dav*_*ave 1 python performance language-features

我正在尝试采用一些最佳实践来保持我的python代码高效.我听说在循环中访问成员变量可能会导致循环的每次迭代都会进行字典查找,因此我将这些变量缓存在局部变量中以在循环内部使用.

我的问题是关于循环语句本身......如果我有以下类:

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

成员函数中的以下代码是否会产生一个或每个循环迭代(5)字典查找?

for letter in self.myList:
     print letter
Run Code Online (Sandbox Code Playgroud)

IE,如果我关注效率,我应该采用以下模式吗?

localList = self.myList
for letter in localList:
    print letter
Run Code Online (Sandbox Code Playgroud)

或者由于局部变量赋值,它实际上是否有效?

注意,我知道如果我担心代码开发的整体效率,早期优化是一个危险的陷阱.在这里,我特别询问代码的效率,而不是编码.

Ign*_*ams 6

迭代器是从中创建的self.myList,并且使用了迭代器.没有self为迭代完成其他额外查找.