[Tutor] beginning to code
Bill
BILL_NOSPAM at whoknows.net
Fri Sep 22 23:06:57 EDT 2017
Mark Lawrence wrote:
> On 22/09/2017 08:01, Bill wrote:
>> Steve D'Aprano wrote:
>>> On Fri, 22 Sep 2017 02:57 pm, Bill wrote:
>>>
>>>> I find Python to be more more
>>>> like Java, with regard to "passing objects by reference".
>>> Which is not a surprise, since both Python and Java use the same
>>> value passing
>>> style: pass by object reference, or pass by sharing if you prefer.
>>>
>>> Java people don't call it that. They call it pass by value, and
>>> categorically
>>> deny that it is pass by reference. (They're right about the second
>>> point.)
>>
>> I figure that, internally, an address, a pointer, is being passed by
>> value to implement pass by reference. Why do you say "they are
>> right" above? Are you saying it's not pass by reference?
>>
>
> Please see
> http://jeffknupp.com/blog/2012/11/13/is-python-callbyvalue-or-callbyreference-neither/
> and http://effbot.org/zone/call-by-object.htm
>
I would would agree with the description provided for the C++ example
provided
string some_guy = "fred";
is replaced by
char* some_guy="fred";
To see that this is correct, note the some_guy may subsequently be
assigned to a character string much longer then "fred". An additional
note: A character string literal, like "cat", never occurs more than
once in compiled C++ program unit. This also shows that the provided
description can't be completely correct. One last thing,
string some_guy = "fred"
is really the same thing as
string some_guy("fred");
and both equivalently call the string constructor.
The data type of "fred" is const char*, not (class) string.
More information about the Python-list
mailing list