読者です 読者をやめる 読者になる 読者になる

素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

Python、クロージャ、自己代入

python

一回目に実行した時に上書きすればできるみたい。

def power(*args):
  memo = {}
  def tmp(n):
    if n in memo:
      print "memoized"
      ret = memo[n]
    else:
      ret = 0
      for i in range(n):
        ret += n
    memo[n] = ret
    return memo[n]
  global power
  power = tmp
  return power(*args)

power(7) # 49
power(7) # memoized 49