On Mon, Oct 24, 2011 at 1:04 PM, Johan Martinez <jmart...@gmail.com> wrote:

> Hi,
>
> I am struggling to understand Python string immutability. I am able to
> modify Python string object after initializing/assigning it a value. So how
> does immutability work? I am not following it. Sorry for really stupid
> question. Any help?
>
> <code>
>
> >>> s = "First"
> >>> print s.__class__
> <type 'str'>
> >>> print s
> First
> >>> s = "Second"
>

This is not actually modifying the string object. Unlike most other
programming languages where a variable refers to an actual location in
memory (usually), in Python the variable names the actual value.

So when you do s = "First" then you are telling python that you want to be
able to refer to the string "First" by the name/variable s.

When you execute s="Second" you are now telling python that instead of
referring to "First" you want the name 's' to refer to the string "Second".

If you try to modify the actual value of the string, you will raise an
exception:

>>> s = "First"
>>> s[0] = "T"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

HTH,
Wayne
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to