Develop Story/python 3

decorator

1. 정의 @staticmethod, @classmethod, @abstractmethod 처럼 함수의 시작부분 앞에 @표시를 하는것을 데코레이터라고 부른다. 이는 함수를 직접 수정하지 않고 함수 앞뒤에 기능을 추가해서 함수를 활용하는 방법이라 생각하면 된다. 2. 인자가 없는 경우 데코레이터 예시를 보자. 다음 예시는 파이썬 코딩 도장에서 발췌한것임을 알려드린다. def trace(func): # 호출할 함수를 매개변수로 받음 def wrapper(): print(func.__name__, '함수 시작') # __name__으로 함수 이름 출력 func() # 매개변수로 받은 함수를 호출 print(func.__name__, '함수 끝') return wrapper # wrapper 함수 반환 @tra..

closure

함수를 둘러싼 환경(지역변수, 코드등)을 계속 유지하다가 함수를 호출할 때 다시 꺼내서 사용하는 함수를 클로저(closure)라고 한다. 예시를 보자. def calc(): a = 3 b = 5 def mul_add(x): return a * x + b return mul_add if __name__ == '__main__': c = calc() print(c(1), c(2), c(3), c(4), c(5)) 위에 예시에서 c에 저장된 함수가 클로저이다. 다음 예시를 하나 더 보자.. def mul(m): def wrapper(n): return m * n return wrapper if __name__ == "__main__": mul3 = mul(3) mul5 = mul(5) print(mul3(10..

First class function

1. definition It means a function that can be passed as an argument to another function, returned as a result of another function, or assigned to a variable or stored in a data structure. 함수 자체를 인자 (argument) 로써 다른 함수에 전달하거나 다른 함수의 결과값으로 리턴 할수도 있고, 함수를 변수에 할당하거나 데이터 구조안에 저장할 수 있는 함수를 뜻한다. 1. assign to a variable def add(digit): return digit + digit def minus(digit): return 10 - digit def multipl..