Chris Angelico <ros...@gmail.com>:
> On Mon, Mar 16, 2015 at 6:12 PM, Marko Rauhamaa <mar...@pacujo.net> wrote:>>>> I was actually referring to the offered API. It still seems to me like>> all iterators could offer close(), send() and throw(). Why? To make all>> iterators drop-in replacements of each other.>> [...]>> That just adds unnecessary overhead to every iterator.
Trivial implementations are a normal way to satisfy an API. That's why
/dev/null implements a close() method, for example.
> Also, what happens when you throw something into iter([1,2,3]) ? Or> send it a value? What happens?
I would expect iter([1, 2, 3]) to behave highly analogously to
(x for x in [1, 2, 3]).
===begin /tmp/test.py===================================================
#!/usr/bin/env python3
def main():
it = (x for x in [1, 2, 3])
print(next(it))
while True:
try:
print(it.send("hello"))
except StopIteration:
break
if __name__ == "__main__":
main()
===end /tmp/test.py=====================================================
========================================================================
$ python3 /tmp/test.py
1
2
3
========================================================================
but:
===begin /tmp/test.py===================================================
#!/usr/bin/env python3
def main():
it = iter([1, 2, 3])
print(next(it))
while True:
try:
print(it.send("hello"))
except StopIteration:
break
if __name__ == "__main__":
main()
===end /tmp/test.py=====================================================
========================================================================
$ python3 /tmp/test.py
1
Traceback (most recent call last):
File "/tmp/test.py", line 13, in <module>
main()
File "/tmp/test.py", line 8, in main
print(it.send("hello"))
AttributeError: 'list_iterator' object has no attribute 'send'
========================================================================
Marko
--
https://mail.python.org/mailman/listinfo/python-list
Recent Messages in this Thread |
|
Rustom Mody |
Mar 12, 2015 01:35 pm |
|
Chris Angelico |
Mar 12, 2015 01:55 pm |
|
brea...@gmail.com |
Mar 12, 2015 01:57 pm |
|
Steven DAprano |
Mar 12, 2015 04:27 pm |
|
Rustom Mody |
Mar 12, 2015 04:52 pm |
|
Marko Rauhamaa |
Mar 12, 2015 05:55 pm |
|
Rustom Mody |
Mar 13, 2015 02:23 am |
|
Steven DAprano |
Mar 13, 2015 03:30 am |
|
Rustom Mody |
Mar 13, 2015 05:28 am |
|
Chris Angelico |
Mar 13, 2015 08:23 am |
|
Rustom Mody |
Mar 13, 2015 09:12 am |
|
Marko Rauhamaa |
Mar 13, 2015 09:36 am |
|
Steven DAprano |
Mar 14, 2015 06:04 am |
|
Marko Rauhamaa |
Mar 14, 2015 07:54 am |
|
Mark Lawrence |
Mar 14, 2015 08:04 am |
|
Ian Kelly |
Mar 14, 2015 08:14 pm |
|
Mark Lawrence |
Mar 14, 2015 08:31 pm |
|
Rustom Mody |
Mar 15, 2015 04:15 am |
|
Marko Rauhamaa |
Mar 14, 2015 08:30 am |
|
Rustom Mody |
Mar 14, 2015 03:29 pm |
|
Chris Angelico |
Mar 14, 2015 03:56 pm |
|
Rustom Mody |
Mar 14, 2015 03:59 pm |
|
Chris Angelico |
Mar 14, 2015 04:14 pm |
|
Rustom Mody |
Mar 14, 2015 04:33 pm |
|
Chris Angelico |
Mar 14, 2015 04:51 pm |
|
Dave Angel |
Mar 14, 2015 05:07 pm |
|
Mark Lawrence |
Mar 14, 2015 04:56 pm |
|
Rustom Mody |
Mar 14, 2015 05:17 pm |
|
Steven DAprano |
Mar 15, 2015 08:37 am |
|
Chris Angelico |
Mar 13, 2015 11:32 am |
|
Oscar Benjamin |
Mar 14, 2015 10:02 pm |
|
Marko Rauhamaa |
Mar 14, 2015 10:15 pm |
|
Chris Angelico |
Mar 14, 2015 10:24 pm |
|
Marko Rauhamaa |
Mar 15, 2015 12:15 am |
|
Chris Angelico |
Mar 15, 2015 12:22 am |
|
Steven DAprano |
Mar 16, 2015 01:03 am |
|
Marko Rauhamaa |
Mar 16, 2015 07:12 am |
|
Chris Angelico |
Mar 16, 2015 07:21 am |
|
Ian Kelly |
Mar 16, 2015 07:37 am |
|
Steven DAprano |
Mar 16, 2015 08:36 am |
|
Chris Angelico |
Mar 16, 2015 08:58 am |
|
Marko Rauhamaa |
Mar 16, 2015 12:32 pm |
|
Rustom Mody |
Mar 16, 2015 12:51 pm |
|
Marko Rauhamaa |
Mar 16, 2015 01:13 pm |
|
Steven DAprano |
Mar 16, 2015 02:32 pm |
|
Ian Kelly |
Mar 16, 2015 02:45 pm |
|
Steven DAprano |
Mar 16, 2015 01:39 pm |
|
Rustom Mody |
Mar 16, 2015 02:19 pm |
|
Mark Lawrence |
Mar 16, 2015 02:26 pm |
|
Steven DAprano |
Mar 16, 2015 02:35 pm |
|
Steven DAprano |
Mar 16, 2015 02:36 pm |
|
Rustom Mody |
Mar 16, 2015 02:37 pm |
|
Rustom Mody |
Mar 16, 2015 02:55 pm |
|
Mark Lawrence |
Mar 16, 2015 06:19 pm |
|
Rustom Mody |
Mar 17, 2015 02:52 am |
|
Mark Lawrence |
Mar 17, 2015 03:07 am |
|
Rustom Mody |
Mar 17, 2015 03:18 am |
|
Ian Kelly |
Mar 16, 2015 02:52 pm |
|
Marko Rauhamaa |
Mar 16, 2015 03:09 pm |
|
Ian Kelly |
Mar 16, 2015 03:26 pm |
|
Marko Rauhamaa |
Mar 16, 2015 04:05 pm |
|
Steven DAprano |
Mar 16, 2015 11:51 am |
|
Chris Angelico |
Mar 16, 2015 01:16 pm |
|
Marko Rauhamaa |
Mar 16, 2015 07:52 am |
|
Steven DAprano |
Mar 16, 2015 12:02 pm |
|
Jonas Wielicki |
Mar 16, 2015 12:39 pm |
|
Marko Rauhamaa |
Mar 16, 2015 12:42 pm |
Re: generator/coroutine terminology |
Marko Rauhamaa |
Mar 16, 2015 07:40 am |
|
Steven DAprano |
Mar 16, 2015 11:59 am |
|
Marko Rauhamaa |
Mar 15, 2015 12:48 am |
|
Chris Angelico |
Mar 15, 2015 02:02 am |
|
Terry Reedy |
Mar 12, 2015 08:11 pm |
|
Mark Lawrence |
Mar 17, 2015 03:55 am |
|
Albert van der Horst |
Mar 31, 2015 12:57 pm |
|
Albert van der Horst |
Mar 31, 2015 01:18 pm |
|
Dave Angel |
Mar 31, 2015 01:38 pm |
|
Steven DAprano |
Apr 03, 2015 06:02 am |
|
Paul Rubin |
Apr 03, 2015 06:46 am |
|
Albert van der Horst |
Mar 31, 2015 03:03 pm |
|
Chris Angelico |
Mar 31, 2015 03:36 pm |
|
Rustom Mody |
Mar 17, 2015 03:33 am |
|
Mark Lawrence |
Mar 17, 2015 03:25 am |
|
Marko Rauhamaa |
Mar 12, 2015 08:22 pm |