About the implementation of del in Python 3
Marko Rauhamaa
marko at pacujo.net
Thu Jul 6 05:24:41 EDT 2017
Chris Angelico <rosuav at gmail.com>:
> On Thu, Jul 6, 2017 at 5:35 PM, Jussi Piitulainen
> <jussi.piitulainen at helsinki.fi> wrote:
>> Incidentally, let no one point out that ids are not memory addresses.
>> It says in the interactive help that they are (Python 3.4.0):
>> [...]
>
> Sorry, not the case.
> [...]
>
> id(...)
> Return the identity of an object: id(x) == id(y) if and only if x is y.
>
>
> The interactive help does not say that in any version newer than the
> 3.4 that you tested. The function does not return an address, it
> returns an identity.
While talking about addresses might or might not be constructive, let me
just point out that there is no outwardly visible distinction between
"address" or "identity".
Equally well, we could replace those words with:
serial number
fixed asset tag
social security number
fermionic quantum state
face
fingerprint
cryptographic hash
Ignoring the word that is used to talk about object identity, it would
be nice to have a precise formal definition for it. For example, I know
that any sound implementation of Python would guarantee:
>>> def f(a): return a
...
>>> a = object()
>>> a is f(a)
True
But how do I know it?
Marko
More information about the Python-list
mailing list