This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author steven.daprano
Recipients alhabshi3k, mark.dickinson, steven.daprano
Date 2014-09-28.16:11:50
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1411920710.45.0.687545139895.issue22511@psf.upfronthosting.co.za>
In-reply-to
Content
I'm afraid that you are mistaken about Python's argument passing semantics. Arguments are *always* passed using the same semantics, and *never* using either pass-by-value or pass-by-reference.

These two pages may help you understand why Python's argument passing semantics are always the same:

http://import-that.dreamwidth.org/1130.html
http://effbot.org/zone/call-by-object.htm

(Unfortunately, although this is the standard argument passing semantics used in many modern languages, including Python, Java and Ruby, there is no standard name for it.)

Augmented assignment is sometimes a little tricky to understand, because it may use both in-place mutation and assignment at the same time. But arguments are still always passed the same way.

If you have a concrete suggestion for a documentation change that will help reduce this confusion, please tell us. Otherwise, I think this issue can be closed. This is not the right place to discuss Python's argument passing semantics, but if you would like to discuss it, I'm happy to do so in the comments on the first link, or on the python-list@python.org mailing list.
History
Date User Action Args
2014-09-28 16:11:50steven.dapranosetrecipients: + steven.daprano, mark.dickinson, alhabshi3k
2014-09-28 16:11:50steven.dapranosetmessageid: <1411920710.45.0.687545139895.issue22511@psf.upfronthosting.co.za>
2014-09-28 16:11:50steven.dapranolinkissue22511 messages
2014-09-28 16:11:50steven.dapranocreate