python3 裝飾器

def myDecorator(...):    #定義裝飾器,可能帶參數
  def decorator(func): #裝飾器核心,以被裝飾的函數對象爲參數,返回裝飾後的函數對象
    def wrapper(*args, **kvargs): #裝飾的過程,參數列表適應不一樣參數的函數
      ... #修改函數調用前的行爲
      func(*args, **kvargs) #調用函數
      ... #修改函數調用後的行爲
    return wrapper
   return decorator

@myDecorator(...):    #給函數加上裝飾器
def myFunc(...):     #本身定義的功能函數
...app

def setTag(tag): #因爲此裝飾器須要參數,因此要再套一層
  def myDecorator(func): #裝飾器的核心,接受函數對象作參數,返回包裝後的函數對象
    def myWrapper(*arg, **kvargs): #包裝的具體過程
      sign = "<" + tag + ">"
      return sign + func(*arg, **kvargs) + sign
     return myWrapper
    return myDecorator函數

@setTag("div") #用@標籤在定義函數時套上裝飾器
def hello(name):
  return 'hello' + name對象

相關文章
相關標籤/搜索