[Beginner] delete items of  also from memory
duncan.booth at invalid.invalid
Tue Nov 23 10:47:45 CET 2004
> "Birgit Rahm" <br_y at yahoo.de> wrote in message
> news:<cns50t$5ip$05$1 at news.t-online.com>...
>> Hello newsgroup,
>> I am a beginner, so I am asking maybe immoderate questions.
>> I want to delete a  variable, after filling it with complex
>> objects. How should I do it?
>> AAA = 
>> AAA = [B, C, D, E, F]
>> Can I
>> 1) AAA = 
>> 2) del AAA[0:]
>> 3) ?
>> whats about the computers memory, will it get free? Or will it get
>> more and more while Python is running?
> I too am a novice, so am prepared to be corrected if this is wrong.
> I don't think you need to worry - Python handles memory allocation
> automatically. Names are not specifically allocated to memory, and
> when the last reference to a name is deleted all the associated memory
> is freed.
It depends on what the original poster meant by 'complex' objects.
Objects with circular references may not be freed until the garbage
collector kicks in, and objects with circular references and a __del__
method may not be freed at all. However, provided you avoid writing __del__
methods on such objects, the memory may not be freed immediately but it
will be freed eventually.
Objects which are not involved in any cyclic references will be freed, as
you say, as soon as the last reference goes.
('Freed' in this context means released for reuse by Python --- don't ever
expect the process to release memory back to the rest of the system.)
More information about the Python-list