[Код в исходной версии был сильно испорчен. Даже после того, как я исправил код, на этом посту остались несколько весьма запутанных опечаток. Я верю, что, наконец, все они исправлены. Профильные извинения.]
Два вызова alias ниже производят разные выходы, потому что объект, связанный с переменной my_own_id, изменяется между двумя вызовами:
>>> def my_own_id():
... me = my_own_id
... return id(me)
...
>>> alias = my_own_id
>>> alias()
4301701560
>>> my_own_id = None
>>> alias()
4296513024
Что я могу назначить me в определении my_own_id, чтобы его вывод оставался неизменным после последующих переопределений переменной my_own_id? (IOW, так что внутренняя переменная me всегда относится к одному и тому же объекту функции?)
(я могу получить текущий кадр (с inspect.currentframe()), но он содержит только ссылку на текущий объект кода, а не на текущую функцию.)
P.S. Мотивация для этого вопроса заключается в том, чтобы лучше знать Python.