Alex Hall 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?
All Craft instances for which you don't provide a weapons argument explicitly will share the same list. If you later append a weapon to that list all these Craft instances will see this change and get the extra weapon: a = Craft("first") b = Craft("second") a.weapons.append("surprise") print b.weapons # ['surprise'] Peter -- http://mail.python.org/mailman/listinfo/python-list