On Thu, Dec 2, 2021 at 3:33 AM Chris Angelico <rosuav@gmail.com> wrote:
>         But it IS stored!  There is no way for it to be evaluated without it
> being stored!
>
I'm not sure I understand you here. How is the late-bound default
"stored" when one side of a ternary is "not stored"?

This seems like dishonest argument.  I'm not even sure what point you think it is making.

Every time I write a function, everything the function does needs to be STORED.  The body is *stored* in the .__code__ attribute.  Other things are stored in .__annotations__ and elsewhere.  A function is an OBJECT, and everything about it has to be attributes of that object.

>>> def foo(a):
...     b = a + 1
...     print(b)
...
>>> foo.__code__
<code object foo at 0x7f167e539710, file "<ipython-input-7-3c44060a0872>", line 1>

A late binding isn't that one thing about a function that never gets stored, but floats in the ether magically ready to operate on a function call by divine intervention.  It HAS TO describe *something* attached to the function object, doing *something* by some means.

--
Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons.  Intellectual property is
to the 21st century what the slave trade was to the 16th.