[Python-Dev] Product iteration

Fredrik Lundh Fredrik Lundh" <effbot@telia.com
Thu, 27 Jul 2000 09:32:42 +0200

moshe wrote:
> On Wed, 26 Jul 2000, Jeremy Hylton wrote:
> > The argument about finalization is specious.  You should not write
> > code that depends on current finalization semantics to do things =
> > closing files.  It's relying on an implementation-dependent feature
> > that is not part of the language spec.  (Just try it on JPython.)
> I know, and I'm not. But the thing is, there are plenty of users of
> CPython which do rely on this feature -- so you're going to break
> people's code. Not nice.

one problem is that there are many places when you don't know
if you can close the file or not -- whoever handed you the file handle
might expect it to remain open after you've done with it.

That's why people use stuff like:

    self.fp =3D None # close if I'm the last user


But wouldn't

    fp =3D fopen(...);
    if (!fp && (errno =3D=3D EMFILE || errno =3D=3D ENFILE)) {
        fp =3D fopen(...);

solve this, at least for simple scripts?