On 05.12.16 20:38, Terry Reedy wrote: > I believe that this item in your list is a design choice rather than a bug. > "* _collectionsmodule.c: deque_repr uses "[...]" as repr if recursion is > detected. I'd suggest that "deque(...)" is clearer---it's not a list." > > I strongly suspect that Raymond H. intentionally choose to consistently > represent deques as "deque(<somelist>)" With recursion, some current > results are: > >>>> import _collections as c >>>> d = c.deque() >>>> d.append(d) >>>> d > deque([[...]]) >>>> d.append(1) >>>> d > deque([[...], 1]) >>>> d.rotate() >>>> d > deque([1, [...]]) >>>> l = [] >>>> l.append(l) >>>> d2 = c.deque(l) >>>> d2 > deque([[[...]]]) > > With ... now being valid, all of these evaluate to a finite structure > with a different representation ('Ellipsis' replacing '...'). The same > would be true of what I believe is your proposal for the first example > above: "deque(deque(...))". I can see why you might prefer it. On the > other hand, it could be seen as falsely implying that the object is the > result two calls to deque. In any case, changing the repr (and possibly > breaking existing code) would be an enhancement issue for 3.7 at the > earliest. > > At least it is the case that the representation of a pure recursive > deque and a deque containing a pure recursive list are different. There was a discussion about this a year ago. I proposed to use <...> or <deque object at ...> for disambiguation. https://mail.python.org/pipermail/python-ideas/2015-December/037537.html https://mail.python.org/pipermail/python-ideas/2015-December/037544.html
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4