擅长:python、mysql、java
<p>节省的不是时间复杂性,而是实际时间。在命名空间中查找函数名就是在字典中查找键,它已经是O(1)。又是一个查找对象(dict也是一个查找对象)。有一个优化的操作码,用于按名称查找局部变量,但它仍然不能比O(1)快。在</p>
<p>在您的示例中,查找<code>self.printMethod</code>将查找本地(<code>self</code>),然后查找属性(<code>printMethod</code>)。这是两次查找。如果将其存储在一个local中,那么对局部变量<code>printMethod</code>的每次后续访问都只是一次查找,而不是两次。仍然是O(1),但速度更快,因为它是一个较小的常数。在</p>
<p><a href="https://stackoverflow.com/questions/20246523/how-references-to-variables-are-resolved-in-pytho">This question</a>进一步讨论了Python中名称查找的工作方式。在</p>