Python

클로저(Closure)

hyunsik_park 2023. 3. 13. 16:51
# 1. 클로저(Closure)
함수 안의 함수를 결과로 반환할 때 , 그 내부 함수를 클로저라고 함
콜백함수, 함수의 순차적 실행, 데코레이터 함수에 사용
# mul1, mul2, mul3 ... mul100도 만들어야하나?
class Mul:
  def __init__(self, m):
    self.m = m
  
  def mul(self, n):
    return self.m * n
    

# 클로저 사용하기

def mul(m):       #외부 함수
  def wrapper(n):#내부 함수(클로저)
    return m * n
  return wrapper

# 2. 데코레이터(Decorator)
* 함수를 꾸며주는 함수
* 함수를 인수로 받는 클로저
* @를 이용하여 사용
* 반복되는 작업을 여러 함수에 적용할 경우, 기존함수를 수정하지 않고 추가 기능을 구현하고 싶은 경우 사용

# 데코레이터 만들기
def func1(a,b):
  result = a+b
  return result
def func2(a,b):
  result = a*b
  return result
    

'Python' 카테고리의 다른 글

파일 읽기 및 저장하기  (0) 2023.03.14
변수 타입 어노테이션  (0) 2023.03.13
파일 입출력  (0) 2023.03.13
12.사용자 정의 함수  (0) 2023.03.09
파이썬 실수값 오차  (3) 2023.03.07