ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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


    중첩함수의 또 다른 특징은 자신이 소속되어 있는 함수 외부에서는 보이지 않습니다. 

    댓글