How to Teach Python "Variables"
Diez B. Roggisch
deets at nospam.web.de
Sun Nov 25 14:31:44 EST 2007
Aurélien Campéas schrieb:
> none a écrit :
>> Hello,
>>
>> IIRC, I once saw an explanation how Python doesn't have
>> "variables" in the sense that, say, C does, and instead has bindings
>> from names to objects. Does anyone have a link?
>>
>> Thanks,
>>
>> Ami
>
> That's something I've often heard and I don't get it. Somehow I don't
> understand how C variables are not like python bindings (the differences
> being that C variables are statically typed and completely disappear at
> run-time; are these differences important enough to warrant such a shift
> in terminology ? (yes there are some other differences, but then the
> question is asked in a context of pedagogy, where the audience is
> introduced to the basics))
>
> I mean : aren't C variables also bindings from names to objects ? Or what ?
There are cruicial differences. In C, you have names pointing to
physical memory locations - fixed locations, that is.
Thus you can do e.g.
some_struct a, b;
a = b = some_struct_value;
a.bar = 10;
b.bar = 20;
Now a.bar will be different from b.bar
This is totally different from python semantics, where
a = b = some_object
a.bar = 10
b.bar = 20
will result in both times the same object being manipulated.
So python variables are more equivalent to pointers in C.
Diez
More information about the Python-list
mailing list