2009/4/2 Daniel Stutzbach <dan...@stutzbachenterprises.com>: > Iterators can implement a method called __length_hint__ that provides a hint > to certain internal routines (such as list.extend) so they can operate more > efficiently. As far as I can tell, __length_hint__ is currently > undocumented. Should it be?
This has been discussed, and no, it is a implementation detail mostly for the optimization of builtin iterators. > > If so, are there any constraints on what an iterator should return? I can > think of 3 possible rules, each with advantages and disadvantages: > 1. return your best guess > 2. return your best guess that you are certain is not higher than the true > value > 3. return your best guess that you are certain is not lower than the true > value > > Also, I've noticed that if a VERY large hint is returned by the iterator, > list.extend will sometimes disregard the hint and try to allocate memory > incrementally (correct for rule #1 or #2). However, in another code path it > will throw a MemoryError immediately based on the hint (correct for rule > #3). Perhaps Raymond can shed some light on these. -- Regards, Benjamin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com