Bug in Python?

Steven D'Aprano steve at pearwood.info
Sat Feb 27 04:44:30 EST 2016


On Sat, 27 Feb 2016 07:55 pm, Terry Reedy wrote:

> In other words, when that doc says *list*, it means a *list*.
> 
> "To create a heap, use a list initialized to [], or you can transform a
> populated list into a heap via function heapify()."
[...]
> "A heap must be an instance of *list* (and not a subclass thereof).  To
> create a heap, start with [] or transform an existing list into a heap
> via function heapify()."

I think that's a sad decision. heapq ought to be able to handle any list
subclass, not just actual lists. Preferably it ought to handle duck-typed
lists too, anything with a list-like interface. It is okay if the optimized
C version only works with actual lists, and falls back to a slower Python
version for anything else.



-- 
Steven



More information about the Python-list mailing list