[原始版本中的代码严重混乱。即使在我修复了代码之后,帖子中仍然存在几个非常令人困惑的错别字。我相信我最终也修复了所有这些问题。深表歉意。]
下面的两个调用会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()
),但它只包含对当前代码对象的引用,而不是对当前函数的引用。)
PS这个问题的动机只是为了更好地了解Python。