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ủacount
biến mặc dùcounter()
chức năng đã kết thúc.
Các hướng dẫn về python khác:
- Giới thiệu về Python
- Cài đặt Python 3 trên macOS
- Chạy các chương trình Python
- Python 2 so với Python 3
- Những điều cơ bản khi làm việc với Python
- Các kiểu dữ liệu Python
- Toán tử Python
- Chuỗi Python
- Python Booleans
- Số Python
- Python, Chấp nhận đầu vào
- Câu lệnh điều khiển Python
- Danh sách Python
- Python Tuples
- Bộ Python
- Từ điển Python
- Các hàm Python
- Đối tượng Python
- Python Loops
- Mô-đun Python
- Các lớp Python
- Thư viện chuẩn Python
- Gỡ lỗi Python
- Phạm vi biến Python
- Python, chấp nhận các đối số từ dòng lệnh
- Đệ quy Python
- Các hàm lồng nhau trong Python
- Các hàm Lambda trong Python
- Python Closures
- Môi trường ảo Python
- Sử dụng GoPro làm webcam từ xa bằng Python
- Python, cách tạo danh sách từ một chuỗi
- Trình trang trí Python
- Python Docstrings
- Tìm hiểu nội tâm Python
- Chú thích Python
- Python, cách liệt kê các tệp và thư mục trong một thư mục
- Python, cách kiểm tra xem một số là số lẻ hay số chẵn
- Python, cách lấy chi tiết của một tệp
- Python, cách kiểm tra xem tệp hoặc thư mục có tồn tại hay không
- Ngoại lệ Python
- Python, cách tạo thư mục
- Python, cách tạo tệp trống
- Python, câu lệnh `with`
- Python, tạo một yêu cầu mạng
- Python, cài đặt các gói của bên thứ 3 bằng cách sử dụng `pip`
- Python, đọc nội dung của một tệp