On Tue, 22 Jul 2014 12:04:09 -0700, fl wrote: > Hi, > I learn Python function call on tutorial. There is a link on this > subject. > http://robertheaton.com/2014/02/09/pythons-pass-by-object-reference-as- explained-by-philip-k-dick/ > > Although it explains clearly, the figure makes me puzzled.
Here is my take on the same question: http://import-that.dreamwidth.org/1130.html Feedback is welcome. > ""Python is different. As we know, in Python, "Object references are > passed by value". I'm not sure who said that, but they weren't really being clear. The mention of "passed by value" is pointless, since it refers only to the implementation inside the interpreter, and not anything you can see using Python code. What it means is that under the hood, you have a mysterious thing called an "object reference". That's just another way of saying "reference to an object", which is usually implemented as a pointer. When the interpreter passes an argument to a function, it does so by making a copy of that pointer (hence "passed by value"). The copy still points to the same object. I believe that for people thinking at the level of *Python code*, such descriptions aimed at the level of the underlying C code inside the interpreter add heat but no light. They simply cause more confusion than clarity. -- Steven D'Aprano http://import-that.dreamwidth.org/ -- https://mail.python.org/mailman/listinfo/python-list