QUERY · ISSUE
py: __del__ special method not implemented for user-defined classes
py-core
Example:
import gc
class Foo():
def __del__(self):
print('__del__')
f = Foo()
del f
gc.collect()
According to this post #1802, gc.collect() should collect the object after the del and call the finaliser, but the finaliser is never called, any ideas?
I know that a good programming practice is to assume that __del__ may never be called, but hey, this still should work :)
CANDIDATE · ISSUE
del should call __del__ method
Example test with custom object:
class Foo():
def __del__(self):
print('__del__')
f = Foo()
del f # should print '__del__'
Also for builtin types with finaliser, like socket.socket.
Example case:
s = socket.socket()
s.connect(addr) # binds "hard" socket to object `s`
...
del s # s.close() has not been called - "hard" socket will never be released