On Nov 21, 7:06 pm, greg <[EMAIL PROTECTED]> wrote: > Aaron Brady wrote: > > Tell me, what happens during a call to the following C++ function? > > > void f( std::vector< int > x ); > > The same thing as would happen if you wrote > > std::vector<int> x = actual_parameter_expression; > > > what happens during a call to the following Python > > function? > > > def f( x ): ... > > The same thing as would happen if you wrote > > x = actual_parameter_expression > > > If not, which one is call-by-value? > > They're both call-by-value, because they're both equivalent to > assignment according to the rules of the language concerned.
No, you have described call-by-equals-sign, or call-by-assignment. While call-by-assignment and call-by-value are equivalent in C++, that does not make your rule hold for all languages. Python is call-by- assignment too, as well as call-by-sharing. Just because a language is call-by-assignment, is not sufficient (or necessary) to be call-by- value. Call-by-value has other characteristics that Python does not meet. -- http://mail.python.org/mailman/listinfo/python-list