Các hàm này gọi là ẩn danh vì không được khai báo theo cách chuẩn bằng từ khóa def. Bạn dùng từ khóa lambda để tạo hàm ẩn danh nhỏ.
- Lambda nhận bất kỳ số lượng đối số nhưng chỉ trả về một giá trị dưới dạng biểu thức. Không chứa lệnh hay nhiều biểu thức.
- Hàm ẩn danh không thể gọi trực tiếp print vì lambda yêu cầu biểu thức.
- Lambda function có namespace local riêng và không truy cập biến ngoài tham số và global namespace.
- Mặc dù lambda trông như hàm một dòng, chúng không tương đương inline statement trong C/C++ (mục đích bỏ qua cấp phát stack khi gọi hàm cho hiệu năng).
Cú pháp
Cú pháp lambda chỉ chứa một câu lệnh:
lambda [arg1 [,arg2,.....argn]]: expression
Ví dụ
#!/usr/bin/python # Định nghĩa hàm sum = lambda arg1, arg2: arg1 + arg2 # Gọi sum như hàm print "Value of total : ", sum(10, 20) print "Value of total : ", sum(20, 20)
Kết quả
Khi mã chạy, kết quả:
Value of total : 30 Value of total : 40