Chris Angelico <ros...@gmail.com>:

> Sure, let me just put that into a function. CPython 3.7, although I'm
> pretty sure most CPython versions will do the same, as will several of
> the other Pythons.
> [demonstration that it didn't work]

Ok. The reason is this:

   Note: The contents of this dictionary should not be modified; changes
   may not affect the values of local and free variables used by the
   interpreter.

   <URL: https://docs.python.org/3/library/functions.html#locals>

So the language specification explicitly ruled it out, unfortunately.

> (Side point: Your slot_ref function is rather bizarre. It's a closure
> AND a class, just in case one of them isn't sufficient.

I don't see anything bizarre in it at all. I use the pattern all the
time. It's called an inner class:

   In Python, it is possible to nest a class within another class,
   method or function.

   <URL: https://en.wikipedia.org/wiki/Inner_class#Programming_languages>


Marko
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to