From: Guido van Rossum Date: Tue, 4 Nov 1997 17:32:59 +0000 (+0000) Subject: Use ``0'' instead of ``None'' to reset the underlying object in close X-Git-Tag: v1.5b1~129 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=19f44560f2387fd0f7e7f6b459510428216b6f79;p=python 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. --- diff --git a/Lib/plat-win/socket.py b/Lib/plat-win/socket.py index 7e1b3727b2..645d01e32f 100755 --- a/Lib/plat-win/socket.py +++ b/Lib/plat-win/socket.py @@ -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()