Marc 'BlackJack' Rintsch wrote: > On Mon, 06 Aug 2007 10:51:20 -0700, Lee Fleming wrote: > >> why isn't the y in def f (x, y = []): something >> garbage-collected? > > `y` is a name. Only objects are garbage collected. There is no `y` in > that ``def`` in the sense that a local name `y` exists when the ``def`` is > executed. The line just says there will be a local name `y` if > the function `f()` is executed and that local name will be bound to the > given object.
Unless the user provides a value for the argument in the call. > Which happen to be a list. This list is referenced by the > function object, so it won't get garbage collected, and it is bound to a > local name `y` every time the function is called. It is always the > very same list object. And if you mutate it, this will be visible to > other calls to the function. > regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://del.icio.us/steve.holden --------------- Asciimercial ------------------ Get on the web: Blog, lens and tag the Internet Many services currently offer free registration ----------- Thank You for Reading ------------- -- http://mail.python.org/mailman/listinfo/python-list