파이썬 클로저

John Jeong (토론 | 기여)님의 2018년 5월 14일 (월) 22:24 판 (→‎개요)

1 개요

Python Closure
파이썬 클로져
  • 일급 객체 함수 개념을 이용하여 스코프에 묶인 변수를 바인딩 하기 위한 기술을 파이썬에 적용
def count():
    cnt = 0
    def add_count():
        nonlocal cnt
        cnt += 1
        return cnt
    return add_count

count = count()
count() # 1
count() # 2
count() # 3

print(count)
print(dir(count))
print(count.__closure__[0])
print(count.__closure__[0].cell_contents)
<function count.<locals>.add_count at 0x7f484dcc96a8>
['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
<cell at 0x7f484dd08e88: int object at 0xa69e40>
3

2 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}