[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),可以继续调用装饰器来修饰函数,而不用重复修改函数或者增加新的封装。这样,我们就提高了程序的可重复利用性,并增加了程序的可读性。