On Sat, 09 Dec 2006 05:58:22 -0800, Niels L Ellegaard wrote: > I wanted a each object to know whether or not it was being referred to > by a living object, and I wanted to warn the user whenever he tried to > change an object that was being refered to by a living object. As far > as I can see the garbage collector module would allow to do some of > this, but one would still have to edit the assignment operators of each > of the standard data structures:
I think what you want is a namespace that requires each object to have exactly one reference - the namespace. Of course, additional references will be created during evaluation of expressions. So the best you can do is provide a function that checks reference counts for a namespace when called, and warns about objects with multiple references. If that could be called for every statement (i.e. not during expression evaluation - something like C language "sequence points"), it would probably catch the type of error you are looking for. Checking such a thing efficiently would require deep changes to the interpreter. The better approach is to revel in the ease with which data can be referenced rather than copied. I'm not sure it's worth turning python into fortran - even for selected namespaces. -- Stuart D. Gathman <[EMAIL PROTECTED]> Business Management Systems Inc. Phone: 703 591-0911 Fax: 703 591-6154 "Confutatis maledictis, flamis acribus addictis" - background song for a Microsoft sponsored "Where do you want to go from here?" commercial. -- http://mail.python.org/mailman/listinfo/python-list