Ví dụ về trình trang trí trong python là gì?
Tìm hiểu nghệ thuật viết các hàm của riêng bạn bằng Python, cũng như các khái niệm chính như xác định phạm vi và xử lý lỗi
Xem chi tiết Mũi tên phải Show
Viết hàm trong PythonNgười bắt đầu4 giờ 63. 5K Học cách sử dụng các phương pháp hay nhất để viết các hàm phức tạp, có thể bảo trì, tái sử dụng với tài liệu tốtDecorators là một trong những công cụ hữu ích và mạnh mẽ nhất của Python. Chúng được sử dụng để sửa đổi hành vi của chức năng. Trình trang trí cung cấp tính linh hoạt để bọc một chức năng khác để mở rộng hoạt động của chức năng được bọc mà không sửa đổi vĩnh viễn chức năng đó Trong Decorators, các hàm được truyền dưới dạng đối số vào một hàm khác và sau đó được gọi bên trong hàm bao bọc Nó còn được gọi là lập trình meta trong đó một phần của chương trình cố gắng thay đổi một phần khác của chương trình tại thời điểm biên dịch Trước khi hiểu về Decorator, chúng ta cần biết một số khái niệm quan trọng về Python Các chức năng trong Python là gì?Python có một tính năng thú vị nhất là mọi thứ được coi là một đối tượng, ngay cả các lớp hoặc bất kỳ biến nào chúng ta định nghĩa trong Python cũng được coi là một đối tượng. Các hàm là đối tượng hạng nhất trong Python vì chúng có thể tham chiếu đến, chuyển đến một biến và cũng được trả về từ các hàm khác. Ví dụ được đưa ra dưới đây đầu ra Trong chương trình trên, khi chúng ta chạy mã, nó cho kết quả giống nhau cho cả hai chức năng. Hàm func2 được gọi là hàm func1 và đóng vai trò là hàm. Chúng ta cần hiểu khái niệm sau về hàm
chức năng bên trongPython cung cấp cơ sở để xác định chức năng bên trong chức năng khác. Các loại chức năng này được gọi là chức năng bên trong. Xem xét ví dụ sau đầu ra We are in first function This is first child function This is second child function Trong chương trình trên, các hàm con được khai báo như thế nào không quan trọng. Việc thực thi hàm con có tác dụng đối với đầu ra. Các hàm con này được giới hạn cục bộ với hàm func() nên không thể gọi chúng một cách riêng biệt Hàm chấp nhận hàm khác làm đối số còn được gọi là hàm bậc cao. Xem xét ví dụ sau đầu ra Trong chương trình trên, chúng ta đã truyền hàm sub() và hàm add() làm đối số trong hàm operator() Một hàm có thể trả về một hàm khác. Xem xét ví dụ dưới đây đầu ra Trong chương trình trên, hàm hi() được lồng bên trong hàm hello(). Nó sẽ trả về mỗi khi chúng ta gọi hi() Chức năng trang trí với các tham sốHãy lấy một ví dụ để hiểu chức năng trang trí được tham số hóa đầu ra Trình trang trí cú phápTrong chương trình trên, chúng ta đã trang trí out_div() hơi cồng kềnh. Thay vì sử dụng phương pháp trên, Python cho phép sử dụng trình trang trí một cách dễ dàng với @symbol. Đôi khi nó được gọi là cú pháp "pie" đầu ra Tái sử dụng trang tríChúng ta cũng có thể sử dụng lại trình trang trí bằng cách gọi lại hàm trang trí đó. Hãy biến trình trang trí thành mô-đun của riêng nó có thể được sử dụng trong nhiều chức năng khác. Tạo một tệp có tên mod_decorator. py với đoạn mã sau Chúng tôi có thể nhập mod_decorator. py trong tập tin khác đầu ra Trình trang trí Python có đối sốChúng tôi muốn truyền một số đối số trong hàm. Hãy làm điều đó trong đoạn mã sau đầu ra TypeError: display() missing 1 required positional argument: 'name' Như chúng ta có thể thấy, hàm không chấp nhận đối số. Chạy mã này gây ra lỗi. Chúng ta có thể sửa lỗi này bằng cách sử dụng *args và **kwargs trong hàm bao bọc bên trong. Sửa đổi trang trí. py như sau Bây giờ wrapper_function() có thể chấp nhận bất kỳ số lượng đối số nào và chuyển chúng vào hàm đầu ra Trả về các giá trị từ các hàm được trang tríChúng ta có thể kiểm soát kiểu trả về của hàm được trang trí. Ví dụ được đưa ra dưới đây đầu ra We are created greeting We are created greeting trang trí ưa thíchHãy cùng tìm hiểu những người trang trí lạ mắt qua chủ đề sau Trang trí lớp họcPython cung cấp hai cách để trang trí một lớp. Đầu tiên, chúng ta có thể trang trí phương thức bên trong một lớp; . @classmethod và @staticmethod xác định các phương thức bên trong lớp không được kết nối với bất kỳ phiên bản nào khác của lớp. @property thường được sử dụng để sửa đổi getters và setters của một thuộc tính lớp. Hãy hiểu nó bằng ví dụ sau Thí dụ. 1- @property decorator - Bằng cách sử dụng nó, chúng ta có thể sử dụng hàm lớp như một thuộc tính. Hãy xem xét đoạn mã sau đầu ra Name: John Grade: B John got grade B Thí dụ. 2 - @staticmethod decorator- @staticmethod được sử dụng để định nghĩa một phương thức tĩnh trong lớp. Nó được gọi bằng cách sử dụng tên lớp cũng như thể hiện của lớp. Hãy xem xét đoạn mã sau đầu ra Lớp đơnMột lớp đơn chỉ có một thể hiện. Có nhiều singletons trong Python bao gồm True, None, v.v. Đồ trang trí làm tổChúng ta có thể sử dụng nhiều decorator bằng cách chồng chúng lên nhau. Hãy xem xét ví dụ sau Trong đoạn mã trên, chúng tôi đã sử dụng trình trang trí lồng nhau bằng cách xếp chồng chúng lên nhau Trình trang trí có đối sốViệc truyền đối số trong trình trang trí luôn hữu ích. Trình trang trí có thể được thực thi nhiều lần theo giá trị đã cho của đối số. Chúng ta hãy xem xét ví dụ sau đầu ra JavatPoint JavatPoint JavatPoint JavatPoint JavatPoint Trong ví dụ trên, @repeat đề cập đến một đối tượng chức năng có thể được gọi trong một chức năng khác. @repeat(num = 5) sẽ trả về một hàm hoạt động như một công cụ trang trí Đoạn mã trên có thể trông phức tạp nhưng nó là mẫu trang trí được sử dụng phổ biến nhất trong đó chúng tôi đã sử dụng một def bổ sung để xử lý các đối số cho trình trang trí Ghi chú. Trình trang trí có đối số không được sử dụng thường xuyên trong lập trình, nhưng nó mang lại sự linh hoạt. Chúng ta có thể sử dụng nó có hoặc không có đối sốtrang trí nhà nướcTrang trí trạng thái được sử dụng để theo dõi trạng thái của trang trí. Hãy để chúng tôi xem xét ví dụ nơi chúng tôi đang tạo một công cụ trang trí đếm số lần hàm được gọi đầu ra Call 1 of 'say_hello' Say Hello Call 2 of 'say_hello' Say Hello Trong chương trình trên, trạng thái đại diện cho số lần gọi hàm được lưu trữ trong. num_calls trên hàm bao bọc. Khi ta gọi say_hello() nó sẽ hiển thị số lần gọi hàm Các lớp học với tư cách là người trang tríCác lớp học là cách tốt nhất để duy trì trạng thái. Trong phần này, chúng ta sẽ tìm hiểu cách sử dụng một lớp như một công cụ trang trí. Ở đây chúng ta sẽ tạo một lớp chứa __init__() và lấy func làm đối số. Lớp cần có thể gọi được để nó có thể thay thế cho chức năng được trang trí Để tạo một lớp có thể gọi được, chúng tôi triển khai phương thức __call__() đặc biệt đầu ra Call 1 of 'say_hello' Say Hello Call 2 of 'say_hello' Say Hello Call 3 of 'say_hello' Say Hello Phương thức __init__() lưu trữ tham chiếu đến hàm và có thể thực hiện bất kỳ khởi tạo bắt buộc nào khác Các loại trình trang trí trong Python là gì?Trên thực tế, có hai loại trình trang trí trong Python — trình trang trí lớp và trình trang trí chức năng — nhưng tôi sẽ tập trung vào trình trang trí chức năng ở đây.
Trình trang trí trong Python với ví dụ w3schools là gì?Trình trang trí trong siêu lập trình Python là một dạng cụ thể của hàm nhận các hàm làm đầu vào và trả về một hàm mới làm đầu ra . Có một số trình trang trí tích hợp viz. @classmethod. @staticmethod.
Trang trí trong Python với các câu hỏi phỏng vấn ví dụ là gì?Khi chúng tôi nhắc đến từ "trang trí", bạn nghĩ đến điều gì? . Một ví dụ là khi chúng ta treo một khung tranh vào tường để làm nổi bật căn phòng. Trình trang trí trong Python thêm một số tính năng hoặc chức năng vào chức năng hiện có mà không thay đổi chức năng đó .
Việc sử dụng trình trang trí thuộc tính với ví dụ là gì?@property là một công cụ trang trí tích hợp sẵn cho hàm property() trong Python. Nó được sử dụng để cung cấp chức năng "đặc biệt" cho một số phương thức nhất định để làm cho chúng hoạt động như getters, setters hoặc deleters khi chúng ta định nghĩa các thuộc tính trong một lớp . Bây giờ bạn đã quen thuộc với các decorator, hãy xem một kịch bản thực tế về việc sử dụng @property. |