Python: Hàm ẩn danh (lambda)
Giải phóng thời gian, khai phóng năng lực
Các hàm này được gọi là ẩn danh vì chúng không được khai báo theo cách chuẩn, không sử dụng từ khóa def .
Để tạo hàm ẩn danh ta sử dụng từ khóa lambda:
- Các biểu mẫu Lambda có thể nhận bất kỳ số lượng đối số nào nhưng chỉ trả về một giá trị dưới dạng một biểu thức. Chúng không thể chứa lệnh hoặc nhiều biểu thức.
- Một hàm ẩn danh không thể là một lệnh gọi trực tiếp để in vì Lambda yêu cầu một biểu thức.
- Các hàm Lambda có không gian tên cục bộ riêng của chúng và không thể truy cập các biến khác với các biến trong danh sách tham số của chúng và các biến trong không gian tên chung.
- Mặc dù có vẻ như Lambda là phiên bản một dòng của một hàm, nhưng nó không tương đương với các câu lệnh nội tuyến trong C hay C++, có mục đích là chuyển cấp phát ngăn xếp hàm trong khi gọi vì lý do hiệu suất.
Cú pháp
Cú pháp của hàm lambda chỉ chứa một câu lệnh duy nhất, như sau:
lambda [arg1 [,arg2,.....argn]]: biểu_thức
Sau đây là ví dụ cho thấy cách hoạt động của dạng hàm lambda:
# định nghĩa hàm ẩn danh sum = lambda arg1, arg2: arg1 + arg2; # gọi hàm ẩn danh print("Sum =", sum(10, 20)) print("Sum =", sum(20, 20))
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
Sum = 30 Sum = 40
Giải phóng thời gian, khai phóng năng lực