Message178393
| Author |
mark.dickinson |
| Recipients |
davidhalter, gwrtheyrn, mark.dickinson, pyos, r.david.murray, rhettinger |
| Date |
2012年12月28日.16:52:10 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1356713530.66.0.674841641815.issue16791@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
It looks to me as though this has nothing to do with itertools In CPython 2.7:
Python 2.7.3 |EPD 7.3-1 (32-bit)| (default, Apr 12 2012, 11:28:34)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "credits", "demo" or "enthought" for more information.
>>> b = [1]
>>> b += (x for x in b) # runs until Ctrl-C
^CTraceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <genexpr>
KeyboardInterrupt
In PyPy:
Python 2.7.2 (341e1e3821fff77db3bb5cdb7a4851626298c44e, Jun 09 2012, 14:24:15)
[PyPy 1.9.0] on darwin
Type "help", "copyright", "credits" or "license" for more information.
And now for something completely different: ``the world doesn't want us to
know''
>>>> b = [1]
>>>> b += (x for x in b) # Returns immediately.
>>>> b
[1, 1]
So it seems that PyPy is building the RHS before appending it to b. That looks like a bug in PyPy to me. |
|