Nick Coghlan wrote: > The naming convention for 'do' is shown in the current PEP 343. The issue > I've > noticed with it is that *functions* read well, but methods don't because > things > get out of sequence. That is, "do locking(the_lock)" reads well, but "do > the_lock.locking()" does not. > > Whereas, using 'with', it can be written either way, and still read > reasonably > well ("with locked(the_lock)", "with the_lock.locked()"). > > The 'with' keyword also reads better if objects natively support use in > 'with' > blocks ("with the_lock", "with the_file"). > > Guido's concern regarding file objects being reused inappropriately can be > dealt > with in the file __enter__ method: > > def __enter__(self): > if self.closed: > raise RuntimeError, "Cannot reopen closed file handle" > > For files, it may then become the common practice to keep pathnames around, > rather than open file handles. When you actually needed access to the file, > the > existing "open" builtin would suffice: > > with open(filename, "rb") as f: > for line in f: > print line
I think I'm starting to agree. Currently about +0.6 in favour of 'with' now, especially if this is to be almost exclusively a resource-acquisition statement, as all our use cases seem to be. -- Greg Ewing, Computer Science Dept, +--------------------------------------+ University of Canterbury, | A citizen of NewZealandCorp, a | Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. | [EMAIL PROTECTED] +--------------------------------------+ _______________________________________________ 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