私はこれを持っています:
>>> a = lambda : lambda x : x * x
これにより、毎回一定のアドレスが得られます。
>>> a
<function <lambda> at 0x7f22769e76e0>
>>> a
<function <lambda> at 0x7f22769e76e0>
>>> a
<function <lambda> at 0x7f22769e76e0>
ただし、そうではありません。なんでそうなの?また、アドレスが 2 つしかないことに注意してください。なんでそうなの?内部ラムダ関数はその場で作成され、呼び出すたびに返されa()
ますか? a が宣言されたときに作成されませんでしたか?
>>> a()
<function <lambda> at 0x7f22769e7320>
>>> a()
<function <lambda> at 0x7f22769e75f0>
>>> a()
<function <lambda> at 0x7f22769e7320>
>>> a()
<function <lambda> at 0x7f22769e75f0>