why cannot assign to function call
sturlamolden
sturlamolden at yahoo.no
Wed Jan 7 06:45:00 EST 2009
On Jan 7, 2:02 am, Steven D'Aprano
<ste... at REMOVE.THIS.cybersource.com.au> wrote:
> In Python code, there are no references and no dereferencing.
The why does CPython keep track of reference counts?
> You can't, because Python doesn't have references. In a language with
> references, that's easy.
Python does not 'pass-by-reference' as Fortran or Pascal do.
> It's harder (impossible?) to write a version that will operate on
> arbitrary types, but that's statically typed languages for you.
In Python an assignment (re)binds the name to another value. You can
certainly write a swap method for mutable types. But you cannot use
the assignment operator to swap the values.
> No no no, lists and tuples store *objects*.
>>> a = 123456789
>>> b = [a]
>>> c = [a]
>>> d = [a, a]
>>> b[0] is a
True
>>> c[0] is a
True
>>> d[0] is a
True
>>> d[1] is a
True
Where is the object 'a' stored?
More information about the Python-list
mailing list