[元のバージョンのコードはひどくめちゃくちゃでした。コードを修正した後でも、いくつかの非常に紛らわしいタイプミスが投稿に残っていました。私も最終的にそれらすべてを修正したと思います。深くお詫び申し上げます。】
以下の 2 つの呼び出しはalias
、変数に関連付けられたオブジェクトmy_own_id
が 2 つの呼び出し間で変更されるため、異なる出力を生成します。
>>> def my_own_id():
... me = my_own_id
... return id(me)
...
>>> alias = my_own_id
>>> alias()
4301701560
>>> my_own_id = None
>>> alias()
4296513024
その出力がその後の変数の再定義に関して不変のままになるようme
に、の定義で何を割り当てることができますか? (IOW、内部変数が常に同じ関数オブジェクトを参照するように?)my_own_id
my_own_id
me
(現在のフレームを取得できます(を使用inspect.currentframe()
)が、現在の関数への参照ではなく、現在のコード オブジェクトへの参照のみが含まれています。)
PSこの質問の動機は、Pythonをよりよく知ることだけです。