Tôi biết @staticmethod, @classmethod và @property, nhưng chỉ thông qua tài liệu phân tán. Có danh sách đầy đủ các trang trí hàm được xây dựng trong Python không?Python - có danh sách trang trí ở đâu đó không?
Trả lời
Tôi không nghĩ vậy. Trang trí không khác với các chức năng thông thường, bạn chỉ gọi chúng theo cách fancier.
Đối với việc tìm kiếm tất cả trong số họ cố gắng tìm kiếm danh sách Built-in functions, bởi vì khi bạn có thể thấy trong Python glossary cú pháp trang trí chỉ là một đường cú pháp, như là hai định nghĩa sau đây tạo ra các chức năng tương đương (sao chép ví dụ này từ thuật ngữ):
def f(...):
...
f = staticmethod(f)
@staticmethod
def f(...):
Vì vậy, bất kỳ hàm dựng sẵn nào trả về một hàm khác đều có thể được sử dụng làm trang trí. Câu hỏi là - nó có ý nghĩa để sử dụng nó theo cách đó? :-)
functools mô-đun chứa một số chức năng có thể được sử dụng làm trang trí, nhưng chúng không được tích hợp sẵn mà bạn yêu cầu.
Chúng không được tích hợp sẵn, nhưng this library trang trí mẫu nếu rất tốt.
Là Abgan says, danh sách hàm được tích hợp có lẽ là nơi tốt nhất để xem, mặc dù trang trí cũng có thể được triển khai dưới dạng lớp, nó không được đảm bảo toàn diện.
Không có thứ gì như danh sách tất cả trang trí. Không có danh sách tất cả các chức năng. Không có danh sách tất cả các lớp.
Trang trí là một công cụ hữu ích để xác định một khía cạnh chung trên các hàm, phương thức hoặc lớp. Có những trang trí được xây dựng trong. Cộng với có bất kỳ số lượng trang trí mát mẻ và vô dụng. Trong cùng một cách có bất kỳ số lượng các lớp học mát mẻ và vô dụng.
Người trang trí thậm chí không cần trả lại hàm. Tôi đã sử dụng @atexit.register
trước đây.
Vâng, hàm đó trả về cùng một hàm được chuyển cho nó cho mục đích đó. –
Ồ, phải không? Tôi không bao giờ để ý. – habnabit
"Trang trí thậm chí không cần phải trả lại một hàm" - để tạo ra bất kỳ ý nghĩa nào, bởi vì '@ decor' chỉ là đường cho' f = decor (f) '- nếu không bạn sẽ mất tham chiếu với chức năng bạn đang trang trí. –
- 1. Tôi có thể tìm danh sách timezоnes ở đâu?
- 2. Python - Danh sách Splitting Đó Có Strings và Số nguyên
- 3. Danh sách lỗi trong Intellij IDEA ở đâu?
- 4. Có một thẻ HTML Meta tổng quan tốt ở đâu đó không?
- 5. Danh sách ngoại lệ python chuẩn cho các chương trình cần nâng cao ở đâu?
- 6. dispatch_async bị trễ ở đâu đó, không thể tìm thấy ở đâu. có vấn đề về NSLog không?
- 7. Trộn danh sách, đảm bảo rằng không có mục nào ở cùng một vị trí
- 8. Danh sách Python có tương đương với dict.get không?
- 9. python @abstractmethod trang trí
- 10. Tôi có thể tìm danh sách các phiên bản đường ray khác nhau ở đâu?
- 11. Tôi có thể lấy danh sách tất cả các phần tử iOS ở đâu?
- 12. Vị trí có thể đặt trong bảng Netbeans ở đâu?
- 13. Vị trí tools.jar nằm ở đâu?
- 14. Tôi có thể tìm danh sách mã lỗi số JSHint ở đâu?
- 15. Tôi có thể tìm danh sách các hằng số API cửa sổ ở đâu
- 16. Tôi có thể tìm danh sách các nút khởi động dht bittorent ở đâu?
- 17. Tôi có thể lấy danh sách Quốc gia, Tiểu bang và Thành phố ở đâu?
- 18. Vị trí của getChildHTML ('nội dung') ở đâu cho các trang danh mục tùy chỉnh trong Magento?
- 19. Python danh sách loại danh sách/tăng dần và sau đó decending
- 20. Tôi có thể lấy danh sách tên quốc gia bằng ngôn ngữ mẹ đẻ ở đâu?
- 21. Các mô-đun python được lưu ở đâu?
- 22. Có phải hình ảnh tích hợp trong iPhone được ghi lại và có danh sách tên của họ ở đâu đó không?
- 23. Danh sách bí danh Loại mã thông báo ủy quyền Android cho API Google ở đâu?
- 24. Tôi có thể tìm danh sách mã phím bàn phím ở đâu?
- 25. Tôi có thể tìm danh sách các bộ tăng tốc loại Powershell .NET ở đâu?
- 26. Danh sách các mục đích có sẵn trong Android ở đâu?
- 27. Tôi có thể tìm danh sách SocketErrorCode và NativeErrorCode do SocketException đưa ra ở đâu?
- 28. Tôi có thể tìm danh sách các mục theo phong cách Android ở đâu?
- 29. __decorated__ cho trang trí python
- 30. Tôi có thể lấy danh sách các ký tự Unicode theo lớp ở đâu?
Không có danh sách chính thức, nhưng liên kết này hữu ích: https://github.com/lord63/awesome-python-decorator – Casebash