Yes, I know that "constant" A will also be modified as the b[0] points to A. Obviously the [] should be marked as immutable, as A is declared to be constant thus immutable. If somebody tries to modify this immutable object an error would occur.
When I further thought about this problem with constant objects (and values), I run into this scenario: What if I want to use a constant object/value as a template (or predefined value/class) for a variable: constant A = ['1'] # let's declare A as immutable constant value/object b = A # let's assign b some default value b.append('2') # and let's play with b, but I wouldn't want to change A What I'd like to see here is that b gets a copy of A so that the original A won't be modified as we play with b. However, as we assign a constant value A to b, I wouldn't want to restrict myself from playing with b. Of course, I could write something like b = list(A) to get a copy of A assigned to b. However, in this situation I have to know the class name of A. But this is something that I would no like to have to know if we want to take modules as some kind of black boxes. Br, T.S. -- http://mail.python.org/mailman/listinfo/python-list