Tôi hiểu hàm lambda là gì trong Python, nhưng tôi không thể tìm thấy ý nghĩa của "ràng buộc lambda" bằng cách tìm kiếm tài liệu Python. Một liên kết để đọc về nó sẽ là tuyệt vời. Một ví dụ giải thích tầm thường sẽ còn tốt hơn nữa. Cảm ơn bạn."Ràng buộc lambda" trong Python là gì?
Trả lời
Thứ nhất, một định nghĩa chung:
Khi một chương trình hoặc chức năng tuyên bố được thực thi, các giá trị hiện tại của thông số chính thức được lưu (trên ngăn xếp ) và trong phạm vi của tuyên bố , chúng được ràng buộc với các giá trị của các đối số thực tế được thực hiện trong cuộc gọi. Khi tuyên bố là đã thoát, các giá trị ban đầu của các đối số chính thức đó sẽ được khôi phục . Giao thức này hoàn toàn đệ quy. Nếu trong phạm vi phần thân của một tuyên bố, thì có nghĩa là được thực hiện khiến các tham số chính thức bị ràng buộc lại, với giá trị mới, sơ đồ liên kết lambda đảm bảo rằng điều này sẽ xảy ra theo trật tự .
Bây giờ, có một tuyệt vời python example in a discussion here:
" ... chỉ có một ràng buộc cho x
: làm x = 7
chỉ thay đổi giá trị trong tồn tại trước đó ràng buộc Đó là lý do
def foo(x):
a = lambda: x
x = 7
b = lambda: x
return a,b
.
trả về hai hàm trả về 7, nếu có một ràng buộc mới sau x = 7
, hàm sẽ trả về các giá trị khác nhau [giả sử bạn không gọi foo (7), tất nhiên. Ngoài ra giả định nested_scopes] .... "
Bạn đã thấy cụm từ được sử dụng ở đâu?
"Ràng buộc" bằng Python thường dùng để chỉ quá trình mà một tên biến kết thúc trỏ đến một đối tượng cụ thể, cho dù bằng cách chuyển nhượng hoặc qua tham số hoặc một số phương tiện khác, ví dụ:
a = dict(foo="bar", zip="zap", zig="zag") # binds a to a newly-created dict object
b = a # binds b to that same dictionary
def crunch(param):
print param
crunch(a) # binds the parameter "param" in the function crunch to that same dict again
Vì vậy, tôi sẽ đoán rằng "lambda ràng buộc" đề cập đến quá trình ràng buộc một hàm lambda đến một tên biến, hoặc có thể ràng buộc các tham số được đặt tên của nó cho các đối tượng cụ thể? Có một lời giải thích khá tốt của ràng buộc trong tham khảo Ngôn ngữ, tại http://docs.python.org/ref/naming.html
Tôi chưa bao giờ nghe thuật ngữ đó, nhưng một lời giải thích có thể là "thông số mặc định" hack được sử dụng để gán giá trị trực tiếp cho tham số lambda. Sử dụng ví dụ của Swati:
def foo(x):
a = lambda x=x: x
x = 7
b = lambda: x
return a,b
aa, bb = foo(4)
aa() # Prints 4
bb() # Prints 7
Số 4 đến từ đâu? – mattbasta
+1: Tôi chắc chắn thông tin này là những nơi khác, nhưng đây chính xác là những gì tôi cần .. ôm lớn !!! –
- 1. Ràng buộc có nghĩa là gì?
- 2. Mẫu ràng buộc với ràng buộc là gì?
- 3. Ràng buộc bắt giữ lambda C++
- 4. Ràng buộc ẩn danh LDAP là gì?
- 5. Ràng buộc dữ liệu là gì?
- 6. Ràng buộc cổng Python
- 7. "{Binding Path =.}" Có nghĩa là gì trong WPF ràng buộc?
- 8. Mô hình ràng buộc trong ASP.NET MVC là gì?
- 9. Python ràng buộc để ImageMagick
- 10. Python lambda của ràng buộc với các giá trị địa phương
- 11. Lambda là gì?
- 12. Ràng buộc hộp kiểm - giải pháp tốt hơn là gì?
- 13. 3 loại bối cảnh ràng buộc là gì?
- 14. Các chế độ ràng buộc WPF khác nhau là gì?
- 15. ElementName Ràng buộc là không
- 16. Sử dụng lambda trong PHP là gì?
- 17. std :: ràng buộc một hàm ràng buộc
- 18. Loại hàm lambda là gì?
- 19. các ràng buộc IIS là gì và mục đích của chúng là gì?
- 20. Thư viện gốc là gì? Nhu cầu ràng buộc là gì?
- 21. Ràng buộc Python SVN cho Windows
- 22. Thiết lập OpenCV 2.3 w/ràng buộc python trong ubuntu
- 23. Dự án VS ràng buộc làm gì?
- 24. Đặt chrome.prefs với python ràng buộc cho selen trong chromedriver
- 25. Buộc ràng buộc duy nhất trong GAE
- 26. selenium.wait_for_condition tương đương trong các ràng buộc Python cho WebDriver
- 27. "lambda" có nghĩa là gì trong Python, và cách đơn giản nhất để sử dụng nó là gì?
- 28. Sử dụng lambda trong Python
- 29. Phỏng vấn: Biểu thức Lambda là gì?
- 30. Bỏ đặt trọng ràng buộc trong emacs
Liên kết đầu tiên đã chết –