On 2005 Jan 13, at 22:43, Paramjit Oberoi wrote:
On Thu, 13 Jan 2005 20:40:56 +0100, Alex Martelli <[EMAIL PROTECTED]> wrote:
So please explain what's imperfect in wrapping a str into a StringIO?
If I understand Philip's argument correctly, the problem is this:
def print_next_line(f: file): print f.readline()
s = "line 1\n" "line 2"
print_next_line(s) print_next_line(s)
This will print "line 1" twice.
Ah! A very clear example, thanks. Essentially equivalent to saying that adapting a list to an iterator ``rewinds'' each time the ``adaptation'' is performed, if one mistakenly thinks of iter(L) as providing an _adapter_:
def print_next_item(it: iterator): print it.next()
L = ['item 1', 'item 2']
print_next_item(L) print_next_item(L)
Funny that the problem was obvious to me for the list->iterator issue and yet I was so oblivious to it for the str->readablefile one. OK, this does show that (at least some) classical cases of Adapter Design Pattern are unsuitable for implicit adaptation (in a language with mutation -- much like, say, a square IS-A rectangle if a language does not allow mutation, but isn't if the language DOES allow it).
Thanks!
Alex
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com