[상세 참조] 파이썬 같은 변수 개의 고차 함수로부터 결과 값을 할당하는 것이 가능하며, 그 함수 반환 고차 함수를 사용하는 방법을 예시 준다 :는 <a href="http://pythonprogramming.jottit.com/functional_programming" rel="nofollow">http://pythonprogramming.jottit.com/functional_programming</a>에 가이드가있다
을def trace(f):
f.indent = 0
def g(x):
print '| ' * f.indent + '|--', f.__name__, x
f.indent += 1
value = f(x)
print '| ' * f.indent + '|--', 'return', repr(value)
f.indent -= 1
return value
return g
및
def memoize(f):
cache = {}
def g(x):
if x not in cache:
cache[x] = f(x)
return cache[x]
return g
그러나 나는 문에 같은 변수에 두 가지 기능을 할당 할 수있어 어떻게하지 않습니다
fib = trace(fib)
fib = memoize(fib)
print fib(4)
추적 및 메모는 마지막 호출에 영향을주는 것 같습니다. 왜 그런가요?
"추적 모두와 memoize는 마지막 호출에 영향을 갖고있는 것 같다"당신이 별도로 추적 버전과 memoized 버전을 사용하려면
, 당신은 예를 들어, 다른 변수에 결과를 할당해야 둘 다 전화를 했어. 또 다른 질문? –