好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

简单理解python的装饰器(语法糖)2021

普通程序

[root@localhost ~]# cat python_decorator_1.py

 def login_print(func):
    def wrapper(*args, **kwargs):
        print("提示一:你好")
        return func(*args, **kwargs)
    return wrapper

def add_print():
    print("提示二:欢迎登陆")

add_print = login_print(add_print)
add_print() 

[root@localhost ~]# python3 python_decorator_1.py

 提示一:你好
提示二:欢迎登陆 

装饰器程序

[root@localhost ~]# cat python_decorator_2.py

 def login_print(func):
    def wrapper(*args, **kwargs):
        print("提示一:你好")
        return func(*args, **kwargs)
    return wrapper

@login_print
def add_print():
    print("提示二:欢迎登陆")

#add_print = login_print(add_print)
add_print() 

[root@localhost ~]# python3 python_decorator_2.py

 提示一:你好
提示二:欢迎登陆 

小结:通过加上@login_print 可以省去add_print = login_print(add_print),可以继续调用装饰器来修饰函数,而不用重复修改函数或者增加新的封装。这样,我们就提高了程序的可重复利用性,并增加了程序的可读性。

查看更多关于简单理解python的装饰器(语法糖)2021的详细内容...

  阅读:30次