On Nov 10, 2:45 pm, Arnaud Delobelle <[EMAIL PROTECTED]> wrote: > Aaron Brady <[EMAIL PROTECTED]> writes: > > Do you ever say to someone, "'Napoleon' will no longer refer to > > Nelson. It is this lobster now instead", while you are holding a > > lobster? > > Not explicitly. But in the course of conversation I might refer to > Napoleon, meaning Napoleon Bonaparte (1769 - 1821) or Napoleon III (1808 > - 1873). There would then be an implicit 'rebinding' of the name Napoleon. > > > My point is that the assignment operation is rare in natural language. > > My point was to get away from a model for Python which was built on its > likely implementation and to hint that we can build one using the naive > concept of 'name for a thing' instead. IOW, 'call by value' is an > unnecessary obfuscation of what *actually* happens (even though it may > describe accurately the artifacts employed by an implementation) > > I'm glad that you thought about it!
I agree with Terry that all calling is call-by-value, and Steven that all calling is call-by-bit-flipping. I agree with Joe that call-by- object is a special case of call-by-value. I thought of another way Python's passing method could be implemented. Parameters are passed as namespace-name pairs, and every time a variable occurs, it's looked up in the namespace it's in. If it's changed (concurrently) in the outer scope, a copy is made into the inner scope. If it's changed in the inner scope, a new entry is added there. It's still call-by-value (and bit-flipping) on some level, in the trivial sense. What else is it? -- http://mail.python.org/mailman/listinfo/python-list