python裝飾器兩種方式
阿新 • • 發佈:2021-01-19
1.普通裝飾器
def decorate(fun): ''' 普通裝飾器 :param fun: :return: ''' def inner(*args,**kwargs): print('呼叫裝飾器之前') fun(*args, **kwargs) print('呼叫裝飾器之後') return inner @decorate #method=decorate(method) def method01(a,b): print('兩個引數的和是',a+b) if __name__== '__main__': method01(1,2)
2.增強裝飾器有名帶參裝飾器
def dynamic_report(target): ''' 帶參裝飾器 :param target: 裝飾器傳進來的引數 :return: ''' def decorate(fun): def inner(*args,**kwargs): print('呼叫時候傳進來的引數',target) fun(*args,**kwargs) print('呼叫後傳進來的引數',target) return inner return decorate @dynamic_report('我是裝飾器傳進來的') def method(a,b): print('method方法',a+b) if __name__ == '__main__': method(1,2)
def dynamic_report(target01,target02): ''' 帶參裝飾器 :param target: 裝飾器傳進來的引數 :return: ''' def decorate(fun):def inner(*args,**kwargs): print('呼叫時候傳進來的引數',target01,target02) fun(*args,**kwargs) print('呼叫後傳進來的引數',target01,target02) return inner return decorate @dynamic_report('zxb','zxl') def method(a,b): print('method方法',a+b)