On 2008-02-28, Steven D'Aprano <[EMAIL PROTECTED]> wrote:
> On Thu, 28 Feb 2008 02:02:19 +0200, Tamer Higazi wrote:
>
>> Hi!
>> Can somebody of you make me a sample how to define a function based on
>> "call by reference" ???
>
> Python doesn't do call by reference. Nor does it do call by value. Please 
> pay no attention to anyone who says it does.

Whatever python has for a calling convention, it is close enough that
naming it "call by reference" gives people a reasonable idea of what
is going on.

> Instead, read this:
>
> http://effbot.org/zone/call-by-object.htm

Which IMO isn't very helpfull. The mentioning of e.g. mutable just
confuses things since it really isn't the issue.

AFAICS people don't have a problem with understanding the calling
convention of python. They have a problem understanding the
assignment semantics. It is just that these problems of understanding
most often surface when an assignment is made to a parameter which
makes them think they don't understand the calling convention.

The important thing to understand is that an assigment in python
is not copying the contends into the variable but is passing
a reference/binding the name to a new object.

After the variable is assigned to it doesn't refer to the same object
with a new contend. It refers to a different object.

-- 
Antoon Pardon
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to