Sean Hammond wrote:
> class Area:
> def __init__(self, occupants = []):
> self.occupants = occupants
>
...
> I must be making some really stupid mistake, but this just doesn't
> look like the list behaviour I would expect. What's going on here?
Whenever you use the default value for occupants in the constructor you
reuse the same list. Don't use mutable objects as default values:
def __init__(self, occupants=None):
if occupants is None:
self.occupants = []
else:
self.occupants = occupants
--
http://mail.python.org/mailman/listinfo/python-list