Câu hỏi phỏng vấn Python
Câu hỏi

Tại sao các hàm lồng nhau trong Py...

Câu trả lời

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.

Hàm Lồng Nhau (Nested Function):

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.

python Copy
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.

Closure:

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

senior

Gợi ý câu hỏi phỏng vấn

middle

Phép gán x = y or z trong Python thực hiện điều gì?

junior

Negative indexes là gì và tại sao lại dùng chúng?

expert

Tại sao bạn lại sử dụng metaclasses?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào