On Sun, 4 Nov 2018 at 23:33, Steven D'Aprano <st...@pearwood.info> wrote: > > On Sun, Nov 04, 2018 at 11:43:50AM +0100, Stephane Wirtel wrote: > > In this PR [https://github.com/python/cpython/pull/3382] "Remove reference > > to > > address from the docs, as it only causes confusion", opened by Chris > > Angelico, there is a discussion about the right term to use for the > > address of an object in memory. > > Why do we need to refer to the address of objects in memory?
Following up on this discussion from a couple of weeks ago, note that Stephane misstated Chris's question/proposal from the PR slightly. The context is that the data model documentation for objects currently describes them as having an identity, a type, and a value, and then uses "address in memory" as an analogy for the properties that the object identity has (i.e. only one object can have a given identifier at any particular point in time, but identifiers can be re-used over time as objects are created and destroyed). That analogy is problematic, since it encourages the "object identities are memory addresses" mindset that happens to be true in CPython, but isn't true for Python implementations in general, and also isn't helpful for folks that have never learned a lower level language where you're manipulating pointers directly. However, simply removing the analogy entirely leaves that paragraph in the documentation feeling incomplete, so it would be valuable to replace it with a different real world analogy that will make sense to a broad audience. Chris's initial suggestion was to use "license number" or "social security number" (i.e. numbers governments assign to people), but I'm thinking a better comparison might be to vehicle registration numbers, since that analogy can be extended to the type and value characteristics in a fairly straightforward way: - the object identity is like the registration number or license plate (unique within the particular system of registering vehicles, but not unique across systems, and may sometimes be transferred to a new vehicle after the old one is destroyed) - the object type is like the make and model (e.g. a 2007 Toyota Corolla Ascent Sedan) - the object value is a specific car (e.g. "that white Corolla over there with 89000 km on the odometer") On the other hand, we're talking about the language reference here, not the tutorial, and understanding memory addressing seems like a reasonable assumed pre-requisite in that context. Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com