[Python-Dev] Extended Function syntax (original) (raw)
Samuele Pedroni pedronis@bluewin.ch
Mon, 3 Feb 2003 13:05:09 +0100
- Previous message: [Python-Dev] Extended Function syntax
- Next message: [Python-Dev] succinctness? (was: Extended Function syntax)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
From: "Guido van Rossum" <guido@python.org>
> > with myfile = autoclosingfile('blah.txt', 'rb'): > > for line in myfile: > > ... > > > > With Guido's 'do', you could define an iterclose(): > > > > do iterclose(open('blah.txt','rb')): (line): > > ... > > > > Btw, the two snippets illustrate quite well the different > > evolutive directions' on the table. > > I must say that, for this particular usage at least, I find > the first one a darn sight easier to follow than the second!
I think 'do' is being misrepresented,
OK, to be even more fair, obviously do can be used to implement with
class with: def init(self,wobj): self.wobj = wobj
def call(self,thunk): if hasattr(wobj,'enter'): wobj.enter() try: thunk(wobj) finally: wobj.exit()
do with(auto_closing_file('blah.txt', 'rb')): (myfile): # bad that is not meaningful: do myfile=with(...): for line in myfile: ...
FURTHER 'do' is more expressive than generators because it allows to capture and abstract 'try' patterns very generally, more than 'with'.
and I also doubt that this is a very practical example.
Yes and no. What would be typical is people abstracting over recurrent pattern of 'for' and 'try' in their program and stuff them in a 'do' behavior, I'm inferring this from what people do with CL macros. So if one does what iterclose does a bunch of times in program, she could be tempted to write iterclose. It's succinctness daemon. General mileage can vary.
But I may have to wait until the next weekend before I can continue in this thread -- I can't work on this on workdays.
OK
- Previous message: [Python-Dev] Extended Function syntax
- Next message: [Python-Dev] succinctness? (was: Extended Function syntax)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]