On 09/05/2015 08:31, Andrew Barnert via Python-ideas wrote:
On May 8, 2015, at 21:04, Nikolaus Rath Nikolaus@rath.org wrote: >
On May 07 2015, Steven D'Aprano steve-iDnA/YwAAsAk+I/owrrOrA@public.gmane.org wrote: But a view would be harmful in this situation:
s = "some string"*1000000 t = s[1:2] # a view maskerading as a new string del s
Now we keep the entire string alive long after it is needed.
How would you solve the first problem without introducing the second?
Keep track of the reference count of the underlying string, and if it goes down to one, turn the view into a copy and remove the sliced original?
Of course I could be wrong; we won't really know until someone actually builds at least an implementation and tests it.
Well they can, but I found a major problem with views is that you can't compare them and so can't sort them, thus rendering them useless for a lot of applications.
-- My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language.