On Mon, 19 Jan 2009 01:38:18 +0000, Gregory P. Smith wrote:

> I regularly point out in code reviews that the very convenient and
> common idiom of open(name, 'w').write(data) doesn't guarantee when the
> file will be closed; its up to the GC implementation details. 

Which, to me, sounds like "please, don't assume that bytes are 8-bits 
wide; this depends on implementation details of your CPU".

CPython will always use reference counting and thus have a simple and 
clear GC criteria that can be exploited to simplify the code. I 
personally don't like defensive programming, nor coding for situations 
that will never arise . When I write CPython applications (thus, for 
instance, using C extensions), I don't see *any* point in trying to 
achieve any cross-python-implementation compatibility. I simply don't 
need it.

Probably, library programmers have a different point of view. But I 
always object when I'm told that I should make my code longer and harder 
to read only because CPython might stop using reference counting (... 
when hell freezes over).

Back to the topic, please let's keep things as they are now: the file 
descriptor is automatically closed as soon as the file object is 
destroyed. If you then feel "safer" always using with or try/finally, 
nobody is going to complain. And everybody will be happy :)
-- 
Giovanni Bajo
Develer S.r.l.
http://www.develer.com

_______________________________________________
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

Reply via email to