중첩 함수
- 중첩 함수를 포함하는 함수 내에서만 호출이 가능하다.
- 중첩 함수를 포함하는 함수의 스코프에서도 접근이 가능하다.
- = 중첩함수를 포함하는 함수에서 선언한 지역변수에 중첩점수가 접근이 가능하다.
함수 내에서 직접 선언하여 호출 가능 및 함수의 매개변수로 함수 인자를 전달받아 함수 내에서 호출해서 사용 가능
매개변수에 전달된 함수를 실행하여 반환된 값을 return문을 통해 반환
람다식/람다 함수
중첩 함수를 편하게 쓰기 위해 만듬
Lambda 매개변수 : 반환값
- 변수에 저장해 재사용이 가능한 함수처럼 사용할 수 있다.
- 기존의 함수처럼 매개변수의 인자로 전달함
- 함수 매개변수에 직접 인자로 전달함
def calc(x,y,operator_func):
return operator_func(x,y)
#매개변수에 전달된 함수를 실행하여 반환된 값을 return문을 통해 반환
def plus(x,y):
return x+y
def minus(x,y):
return x-y
#print(calc(1,2,plus))
#Lambda
res= calc(1, 5,lambda a,b:a+b)
print(res)
클로저
- 중첩함수에서 중첩함수를 포함하는 함수의 scope에 접근 가능
- 중첩함수 자체를 반환값으로 사용한다면?
- 정보 은닉 구현 기능
- 전역변수의 남용 반지
- 메서드가 하나밖에 없는 객체를 만드는 것보단 우아한 구현 가능
'공부기록 > Python' 카테고리의 다른 글
[python] 함수와 매개변수 (0) | 2023.04.13 |
---|---|
[Window][Conda] CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. (0) | 2023.01.15 |