If a class is defined in interpreter environment:
class C(object):
def __init__(self, val):
self.x = val
Then instantiated without names:
>>> C(1)
>>> C(2)
>>>
Then we can use underscore _ to refer to C(2)
, so here is my question:
- Since the underscore '_' refer to
C(2)
, can we say the reference counter forC(2)
is still 1? So the python gc will not free the memory taken byC(2)
? - As far as I know, after these
C(2)
is executed, no names will refer toC(1)
, so can I say as soon asC(2)
is executed,C(1)
's memory will be freed by python gc?
These are actually 4 questions, one bold font to one.
gc: short for garbage collection
EDIT
Let me make my first question more clear by commenting directly into the codes.
>>> C(1) # Press Enter Key and run
>>>
>>> At Here, what is the exact reference count for the previous anonymous object "C(1)"?
>>> And how to prove?
>>>
>>> C(2) # Press Enter Key and run
>>>
>>> At Here, what is the exact reference count for the previous anonymous object "C(1)"?
>>> And how to prove?