list vs tuple

Delaney, Timothy tdelaney at avaya.com
Sun Apr 1 20:50:46 EDT 2001


> >Michael Prager wrote:
> >> To expand on that, be aware that Python has a rather fanciful
> >> use of the assignment operator for "mutable" objects
> >
> >there is no assignment operator.  (it's a statement)
> >
> >and it doesn't care whether the object is mutable or not.
> 
> To the naive user, the EFFECT is different.  If the object is
> immutable, the statement appears to act just like it does in
> many other languages.  (It may not really act that way, but the
> difference is hidden.)
> 
> If the object is mutable, the difference is quite important, in
> that modifying later what's pointed to by name "b" can also
> modify what's pointed to by name "a".
> 
> That behavior is not in agreement with the "mental model" used
> by many other languages, so I would think it a major pitfall for
> beginners -- at least, it was for this beginner.  It's either

How is this different from the behaviour of a C pointer (at a conceptual
level)?

char	a[10]	= "Hello, world!\0";
char	*b	= a;	/* b refers to same memory space as a */

a[1] = '?';

/* a & b now refer to the same string "H?llo, world!" */

/* Note: it's been a while since I've done any C, but I think this is all
right ... */

Tim Delaney
Avaya Australia
+61 2 9352 9079

All recipient(s) of this email have permission to forward or reply to this
email, quoting this email in full or in part.





More information about the Python-list mailing list