Tại sao các hàm lồng nhau trong Py...
Tại sao các hàm lồng nhau trong Py...
Trong Python, một hàm lồng nhau (nested function) thực sự có thể trở thành một closure, nhưng không phải mọi hàm lồng nhau đều là closure. Sự khác biệt chính giữa một hàm lồng nhau thông thường và một closure nằm ở "môi trường lexicographical" mà hàm đó có thể truy cập.
Một hàm lồng nhau là một hàm được định nghĩa bên trong một hàm khác. Hàm lồng nhau có thể truy cập các biến của hàm bên ngoài mà nó được định nghĩa.
def outer_function():
outer_var = "I am outside!"
def inner_function():
print(outer_var)
inner_function()
outer_function() # In ra: I am outside!
Trong ví dụ trên, inner_function
là một hàm lồng nhau bên trong outer_function
và có thể truy cập biến outer_var
của hàm bên ngoài.
Một closure trong Python là một hàm lồng nhau mà "nhớ" môi trường mà nó được tạo ra, ngay cả khi hàm bên ngoài đã kết thúc thực thi. Điều này có nghĩa là closure có t...
senior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào