Hans Georg Schaathun wrote:

> On 01 May 2011 08:45:51 GMT, Steven D'Aprano
>   <steve+comp.lang.pyt...@pearwood.info> wrote:
> :  Python uses a data model of "name binding" and "call by object" (also
> :  known as "call by sharing"). I trust I don't need to define my terms,
> :  but just in case:
> 
> Without having the time to get my hand around exactly what this means:
> Simula has three ways of transmitting arguments, namely transmission
> by name, by value, and by reference.  Is transmission by name the same
> as call by object?  Anyway, I have never seen anyone counting more than
> three ways of doing this ...

To illustrate the neither-fish-nor-fowl nature of Python calls:

mwilson@tecumseth:~$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def identify_call (a_list):
...   a_list[0] = "If you can see this, you don't have call-by-value"
...   a_list = ["If you can see this, you have call-by-reference"]
... 
>>> my_list = [None]
>>> identify_call (my_list)
>>> my_list
["If you can see this, you don't have call-by-value"]



so it's neither call-by-value nor call-by-reference as (e.g.) C or PL/I 
programming would have it (don't know about Simula, so I am off topic, 
actually.)  It's not so wrong to think of Python's parameter handling as 
ordinary assignments from outer namespaces to an inner namespace.

        Mel.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to