Trung BìnhPython iconPython

Closure là gì? Khác với lambda thế nào?

Closure là nested function "ghi nhớ" biến từ enclosing scope dù outer function đã kết thúc.

Lambda là anonymous function một dòng — thường dùng cho logic đơn giản tức thời.

python
# Closure — nhớ state
def make_counter(start=0):
    count = [start]
    def counter():
        count[0] += 1
        return count[0]
    return counter

c = make_counter()
print(c(), c(), c())  # 1, 2, 3

# Lambda — function tức thời
double = lambda x: x * 2

Pitfall: Closure trong vòng lặp — mọi closure đều tham chiếu cùng biến vòng lặp, không phải giá trị tại thời điểm tạo.

Xem toàn bộ Python cùng filter theo level & chủ đề con.

Mở danh sách Python