Hướng dẫn multiple decorators python - nhiều trang trí python

Cải thiện bài viết

Lưu bài viết

Trong bài viết này, chúng tôi sẽ cố gắng hiểu khái niệm cơ bản đằng sau cách tạo các nhà trang trí chức năng và chuỗi chúng lại với nhau, chúng tôi cũng sẽ cố gắng xem các ví dụ trang trí Python. & NBSP;how to make function decorators and chain them together we will also try to see Python decorator examples

Người trang trí là gì trong Python?

Trình trang trí là một hàm có thể lấy một chức năng như một đối số và mở rộng chức năng của nó và trả về một chức năng sửa đổi với chức năng mở rộng.

Hướng dẫn multiple decorators python - nhiều trang trí python

Vì vậy, ở đây trong bài viết này, chúng ta sẽ tìm hiểu về chuỗi trang trí. Chuỗi trang trí có nghĩa là áp dụng nhiều hơn một trang trí bên trong một chức năng. Python cho phép chúng tôi thực hiện nhiều hơn một người trang trí cho một chức năng. Nó làm cho các nhà trang trí hữu ích cho các khối xây dựng có thể tái sử dụng khi nó tích lũy một số hiệu ứng cùng nhau. Nó còn được gọi là trang trí lồng nhau trong Python. Chúng tôi cũng sẽ thấy các ví dụ trang trí Python.Python decorator examples.

Cú pháp của người trang trí trong Python

@decor1
@decor
def num():
    statement(s)    

Ví dụ 1: & nbsp;

Đối với chức năng num (), chúng tôi đang áp dụng 2 chức năng trang trí. Đầu tiên là người trang trí bên trong sẽ làm việc và sau đó là người trang trí bên ngoài.

Python3

def decor1(func):

    def inner():

        x ____10

400
1

        

400
3 x
400
5
400
6

    

400
3
400
9

def

************
@@@@@@@@@@@@
Hello
@@@@@@@@@@@@
************
GeekforGeeks
1

    def inner():

        x ____10

400
1

        

400
3 x
400
5
400
6

    

400
3
400
9

def7

def8

def

************
@@@@@@@@@@@@
Hello
@@@@@@@@@@@@
************
GeekforGeeks
1

        

400
3 def1
400
5
400
6

decor1(func):4decor1(func):5

Output:

400

def decor1(func):0

    

400
3 decor1(func):3

Python3

def decor1(func):

    def inner():

    1decor1(func):4    3    4    5

    1

400
1

    1decor1(func):4    3    4    5

        x ____10

400
1

        

400
3 x
400
5
400
6

    def inner():

    1decor1(func):4    3inner():4    5

    1

400
1

        x ____10

400
1

        x ____10

400
1

def7

        7

        

400
3 x
400
5
400
6

x 0decor1(func):4    3x 3    5

    

400
3
400
9

x 0decor1(func):4    3

400
00    5

400
02

400
03

Output:

************
@@@@@@@@@@@@
Hello
@@@@@@@@@@@@
************
GeekforGeeks

def

************
@@@@@@@@@@@@
Hello
@@@@@@@@@@@@
************
GeekforGeeks
1