weakref, memory management and execution slow down in PyQt4

Terry Reedy tjreedy at udel.edu
Wed Sep 10 04:15:15 CEST 2014

On 9/9/2014 11:34 AM, Michael Torrie wrote:
> On 09/08/2014 08:45 PM, kjs wrote:
>> You're right, a dictionary can do everything I need and more.
> Actually I am wrong in suggesting a dictionary.  A list or an array
> would probably be more appropriate.
> Thinking about it this morning, one additional reason why getattr and
> setattr aren't appropriate for this task is that they are not just a
> dictionary lookup under the hood, they are an additional layer.  One
> more function call that would be unnecessary if you used a data
> structure directly.

The extra function call for getattr at least doubles the lookup time
 >>> repeat("C.a", "class C: a=1")
[0.06093001107618079, 0.042186288111423664, 0.04218598069616064]
 >>> repeat("getattr(C, 'a')", "class C: a=1")
[0.13152054655972734, 0.1100451316336688, 0.11021882125309901]

Terry Jan Reedy

More information about the Python-list mailing list