[Tutor] Static Variable in Functions

Andre Engels andreengels at gmail.com
Mon Mar 14 10:23:47 CET 2011


On Mon, Mar 14, 2011 at 9:56 AM, Alan Gauld <alan.gauld at btinternet.com> wrote:
> "Yasar Arabaci" <yasar11732 at gmail.com> wrote
>
>> >>> a=["a"]
>> >>> b=[a]
>> >>> a.append("c")
>> >>> b
>> [['a', 'c']]
>>
>> Apperantly, I can change something (which is mutable) inside  a list
>> without even touching the list itself :)
>
> But the point is that you *are* touching the list.
> In this case you have two names referring to the same list.
> You can modify that list (because it is mutable) via either name, it
> makes no difference because they both refer to the same list.
>
> So a.append() is exactly the same operation as b.append()

No, they are not the same list. b is (a name of) a list with one
element, that one element being the list (denoted by) a. That's not
the same as a itself.

-- 
André Engels, andreengels at gmail.com


More information about the Tutor mailing list