Use `0'' instead of `None'' to reset the underlying object in close

methods.  Using None causes problems if the destructor is called after
the __builtin__ module has already been destroyed (unfortunately, this
can happen!).  I can't just delete the object because it is actually
tested for (if self._sock: ...).  Setting it to 0 is a bit weird but
works.
This commit is contained in:
Guido van Rossum 1997-11-04 17:32:59 +00:00
parent 8f3c812e22
commit 19f44560f2

View File

@ -27,7 +27,7 @@ class _socketobject:
self._sock = sock
def close(self):
self._sock = None
self._sock = 0
def __del__(self):
self.close()
@ -68,7 +68,7 @@ class _fileobject:
if self._sock:
self.flush()
finally:
self._sock = None
self._sock = 0
def __del__(self):
self.close()