On Fri, May 21, 2010 at 11:38 AM, Alex Hall <mehg...@gmail.com> wrote: > On 5/21/10, Christian Heimes <li...@cheimes.de> wrote: >> Am 21.05.2010 04:56, schrieb Alex Hall: >>> Hi all, >>> I am now trying to allow my classes, all of which subclass a single >>> class (if that is the term), to provide optional arguments. Here is >>> some of my code: >>> >>> class Craft(): >>> def __init__(self, >>> name, >>> isAircraft=False, >>> id=helpers.id(), >>> hits=0, >>> weapons=[]): >> >> I hope you are aware that helpers.id() is called just once when the >> *class* is defined and that the list weapons is shared across all >> instances of the craft class. :) > I know id is called once, but what do you mean weapons is shared?
Read the "Important warning" on http://docs.python.org/tutorial/controlflow.html#default-argument-values `weapons` will be the *exact same list object* for all Craft instances the way you have it currently (i.e. it will not be copied and changes to it will affect all Crafts). Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list