Notice
Recent Posts
Recent Comments
Link
nathan_H
Closure. 본문
python은
내부 함수을 사용할 수 있다
즉 함수 안에 함수를 넣어
루프나 코드 중복을 피하기 위해
또 다른 함수 내에 어떤 복잡한 작업을
한 번 이상 수행할 때 유용하게 사용 할 수 있다.
def write(books):
def reading(book):
return f"i am reading {book}"
return reading(books)
그리고 내부 함수는
클로저처럼 사용 될 수 있다.
클로져란
다른 함수에 의해 동적으로 생성된다.
그리고 바깥 함수로부터 생성된 변수값을 변경하고,
저장할 수 잇는 함수이다.
def write1(books):
'''closure'''
def reading():
return f"i am reading {books}"
return reading
if __name__ == "__main__":
a = write1("when") # <function write1.<locals>.reading at 0x000001BEFC489AE8>
b = write1("how") # <function write1.<locals>.reading at 0x000001BEFC489AE8>
print(a()) # i am reading when
print(b()) # i am reading how
내부 함수에 인자를 주지 않고
바깥 함수에 변수를 받아
저장하여 사용된다.
그리고 write1의 내부함수 reading은
return reading 구문으로 reading함수의
특별한 복사본을 반환한다.
즉 외부 함수에 의해 동적으로 생성되고,
외부 함수의 변수값을 알고 있는 함수인 클로져인 것이다.
'Programming Laguage > Python' 카테고리의 다른 글
python - class method type. (0) | 2019.04.30 |
---|---|
python - function 과 method (0) | 2019.04.30 |
python - namespace (0) | 2019.04.26 |
Decorator (0) | 2019.04.26 |
python - 진수 변환, ascll code 변환 (0) | 2019.04.18 |
Comments