On 1/5/2010 11:46 PM, 朱淳 wrote:
I've token a dictionary to save filenames, and write it into
"constant.py". And I think it's a good method to create a class as Andre
wrote.  Thank you all!
By the way, if I close a open file object, will the closed file object
still occupy the memory?

Any python object occupies a certain baseline amount of memory.

> As I saw in a list, this kind of unusable file
object wasn't cleaned by GC.

The file object wasn't cleaned by the GC since you're still holding a reference to the file object (inside your list or any other variables currently referencing to it).

> What will happen if there's no list?

Python makes a guarantee that object will never be GC-ed as long as there is more than one variable referencing the object[1]. If you want to make sure that an (file) object gets GC-ed you have to delete all references to it, that is, you have to remove the file object from the list and delete or reassign all variables currently referencing to the file object or make the variables out-of-scope. This kind of micro-management is generally discouraged in python[2].

[1] weak references does not count
[2] it's better to make it so that you don't need to manually delete variables in the first place and rely on the refcount/GC to delete variables/object references automatically when they're out of scope

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to