global res
res = dict()
res[0] = 0
res[1] =1
def fib(n):
if n in res:
return res[n]
else: value = fib(n-1) + fib (n-2)
res[n] = value
print res
return value
if __name__ == '__main__':
print fib(10)
ここでは、メイン プロンプトからグローバルに宣言されている res にアクセスしようとしていますが、print res と言うと、古い辞書のみが表示され、fib 関数を呼び出した後でも更新された値は表示されません。私はこれをWindows cmdで実行しています。古い辞書と言うときは、キーとして0と1を持つresを意味します。