python装饰器

装饰器的本质:在不改变被装饰对象原有的“调用方式”和“内部代码”的情况下给被装饰对象添加新的功能。

装饰器的作用,就是封装一个函数,然后修改它,也就是在不改变原有功能代码的基础上,添加额外的功能。

在python中所有的东西都是对象,函数可以作为参数进行传递。

 

代码实现:

# coding:utf-8
__author__ = "xiaomagua"

from functools import wraps

def login_outer(name="momo", sleep=10):
   def login(func):
      @wraps(func)  # 不改变使用装饰器原有函数的结构(如__name__, doc)
      def wraaper(*args, **kwargs):
         print("%s checking login..." % name)
         print("sleep %s second..." % sleep)
         func(*args, **kwargs)
      return wraaper
   return login

@login_outer("jack")
def sayhi(name):
   print("hi %s, greeting.." % name)

sayhi("jack")

 

参考:

https://cloud.tencent.com/developer/article/1683739

https://segmentfault.com/a/1190000007837927

posted @ 2022-08-01 15:10  一只小麻瓜  阅读(17)  评论(0编辑  收藏  举报