Question About When Objects Are Destroyed
Consider the following Python shell session (Python 3.6.2, Win64):
>>> def givemetwo():
... x = 'two'
So far fine. My understanding of object existence made me
think that the object referred to by x would be deleted when
the givemetwo() function returned, like a local variable in C.
However, this isn't true, as shown by the following in the same
>>> import ctypes
>>> print (ctypes.cast(1578505988392, ctypes.py_object).value)
This shows that the object still exists, which was a surprise.
Will this object ever be deleted? I'm learning about function
decorators which, as my early studies tell me, depend on calling
a function defined inside another function. This suggests that
objects defined inside functions are never deleted, otherwise
function decorators would never work. (I'm not 100% sure
my understanding of function decorators is correct since I'm
still learning about them).
What's the right way to think about this?