Understanding python functions - Instant Python tutorial

Chris Carlen crcarleRemoveThis at BOGUSsandia.gov
Fri Jul 13 18:14:47 CEST 2007


Gabriel Genellina wrote:
> En Thu, 12 Jul 2007 21:51:08 -0300, Chris Carlen  
> <crcarleRemoveThis at BOGUSsandia.gov> escribió:
>> http://hetland.org/writing/instant-python.html
>> I don't understand Hetland's terminology though, when he is speaking of
>> "binding" and "reference."  Actually, Hetland's entire first paragraph
>> is unclear.
> First, see this short article http://effbot.org/zone/python-objects.htm

I'll have a look.

> Now, forget about C "variables" and "pointers" because you won't get 
> much  far with those concepts.

Ok, painful, but I'll try.

> Objects exist - and we usually use names to refer to them. This line:
> 
> a =  1
> 
> means "make the name 'a' refer to the object 1", or, "bind the name 'a' 
> to  the instance of type int with value 1", or "let 'a' be a reference 
> to the  object 1"
> 
> This line:
> 
> some_list[1] = 4
> 
> means "make the second element of some_list refer to the object 4", or  
> "alter some_list so its element [1] is a reference to the object 4"
> 
> bind the name 'a' to the instance of type int with value 1", or "let 
> 'a'  be a reference to the object 1"
> 
> Note that some objects are immutable - like the number 1, which will  
> always be the number 1 (*not* an integer "variable" that can hold any  
> integer value). Other objects -like lists and dictionaries, by example, 
> or  most user defined classes- are mutable, and you can change its 
> contents  and properties. Modifying an object is not the same as 
> rebinding its name:
> 
> x = [1,2,3]
> y = x
> x[1] = 4
> print x        # [1, 4, 3]
> print y     # [1, 4, 3]

Thanks to your explanation, I understand!

> x = [1,2,3]
> y = x
> x = [1,4,3]
> print x        # [1, 4, 3]
> print y        # [1, 2, 3]
> 
> You can test is two names refer to the same object using the is 
> operator:  x is y. You will get True in the first case and False in the 
> second case.

I don't quite get this "x is y" stuff yet.

Let's go back the statement:

x = [1,2,3]

Do we then say: "[1,2,3] is x" or is it the other way around: "x is 
[1,2,3]" ???

I think it is the former in Python, whereas it would be the latter in C.

So Python is like saying "I am Chris Carlen."

This is actually completely ridiculous, since I am me, not my name.  The 
name refers to me.  I get that.  Yet our spoken language puts it in a 
way which is backwards.


Thanks for the input.





-- 
Good day!

________________________________________
Christopher R. Carlen
Principal Laser&Electronics Technologist
Sandia National Laboratories CA USA
crcarleRemoveThis at BOGUSsandia.gov
NOTE, delete texts: "RemoveThis" and
"BOGUS" from email address to reply.



More information about the Python-list mailing list