Python Closures

Trước đây chúng ta đã biết cách tạohàm lồng nhau trong Python.

Nếu bạn trả về một hàm lồng nhau từ một hàm, thì hàm lồng nhau đó có quyền truy cập vào các biến được xác định trong hàm đó, ngay cả khi hàm đó không còn hoạt động nữa.

Đây là một ví dụ về bộ đếm đơn giản.

def counter():
    count = 0
<span style="color:#66d9ef">def</span> <span style="color:#a6e22e">increment</span>():
    nonlocal count
    count <span style="color:#f92672">=</span> count <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>
    <span style="color:#66d9ef">return</span> count

<span style="color:#66d9ef">return</span> increment

increment = counter()

print(increment()) # 1 print(increment()) # 2 print(increment()) # 3

Chúng tôi trả lạiincrement()chức năng bên trong và vẫn có quyền truy cập vào trạng thái củacountbiến mặc dùcounter()chức năng đã kết thúc.


Các hướng dẫn về python khác: