Would it not be better to describe the differences between C and Python variables directly rather than using an analogy?

In C, a variable is the address of a storage location that contains its value. If that value is itself an address then the variable is described as a pointer.

In Python, a variable is a reference to an object that has a type as well as a value.

The statement:

   a= b = c;

results in three separate values in C but only one in Python. The effect is the same in both languages provided that c refers to a constant. However, if c is a mutable object, such as a list, then changing the value of one variable changes them all. Anyone coming to Python from C may be confused by this as it is not clearly described in any of the books on Python that I have read.

When passing an argument to a function, C uses pass-by-value whereas Python uses what is in effect pass-by-reference. In order to obtain pass-by-reference in C the value must be a pointer. Inside the function the pointer must be dereferenced by prefixing it with an asterisk to obtain the value.

Eur Ing Christopher Thoday
Software Engineer

_______________________________________________
Edu-sig mailing list
[email protected]
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to