-
[Python] 중첩함수언어/파이썬 & 장고 2016. 10. 7. 10:55
파이썬은 함수 안에 함수를 정의하는 것이 가능합니다. 중첩함수는 자신이 소속된 함수의 매개변수에 접근할 수 있다는 특징이 있습니다.
아래 예제는 stddev()는 표준편차를 구하는 함수인데 mean()과 variance()를 중첩 함수로 가지고 있습니다.
import math def stddev(*args): def mean(): return sum(args) / len(args) def variance(m): total = 0 for arg in args: total += (arg - m) ** 2 return total / (len(args) - 1) v = variance(mean()) return math.sqrt(v) a = stddev(1.3, 1.5, 2.6, 5.4) print(a)
# 1.88856206323
중첩함수의 또 다른 특징은 자신이 소속되어 있는 함수 외부에서는 보이지 않습니다.