このサンプルコードのようなものがあるとします。
def foo(n):
def bar():
return -1
if n = 0:
return 0
else:
return foo(n+bar())
foo が再帰的に呼び出されるたびに、 bar の新しいインスタンスを作成すると仮定します。ただし、これは python (または他の言語) で最適化できるもののように見えますが、最適化されているかどうかを示すものは見つかりませんでした。
foo でバーを定義している理由は、バーをユーザーから隠そうとしていることと、Python の _bar() または __bar() の「この親愛なるユーザーを使用しないでください」が、非スクリプトで訓練されているため、私を悩ませていることです。言語。