zoukankan      html  css  js  c++  java
  • python-装饰器

    1、简单装饰器
    例如:
    def login(func):

    def inner(y):
    print('恭喜,验证通过!')
    func(y)
    return inner
    @login
    def TV(x):
    print('这就是 %s 。。。。' %x)


    TV('hah')
     

     结果:恭喜,验证通过!
        这就是 hah 。。。。


    流程:执行TV()时,首先是将被装饰的函数名作为装饰函数的参数执行装饰函数(此例中是将TV作为参数传入到login中并执行该函数),在执行完login函数后就返回该函数的返回值,
    然后有将被装饰函数的参数作为参数传入到login函数返回值(返回函数)并执行(此例中是将TV中的参数作为inner的参数传入inner中并执行该函数)!

    2、带参数的复杂装饰器
    例如:
    def x(can1,*args,**kwargs):

    print('这是x函数的结果!')
    return
    def y(can2,*args,**kwargs):
    print('这是y函数的结果!')
    return
    def fuhe(can3,can4,*args,**kwargs):
    def fan1(can5,*args,**kwargs):
    def fan2(can6,*args,**kwargs):
    can3(can6)
    can4(can6)
    can5(can6)

    return fan2
    return fan1


    @fuhe(x,y,)
    def z(h):
    print('这是z函数的结果!')
    return


    z(2)
    结果:

    这是x函数的结果!
    这是y函数的结果!
    这是z函数的结果!

    过程:将x,y这两个函数作为参数传给fuhe函数的can3,can4,将被装饰函数的函数名作为参数传给函数fan1的can5作为参数,然后将被装饰函数的参数作为参数传给函数fan2的can6,并执行代码!(原理和简单的装饰器一样,除了第一步将x,y这两个函数作为参数传给fuhe函数的can3,can4!)

  • 相关阅读:
    hdu 1260 Tickets
    hdu 4738 Caocao's Bridges(桥的最小权值+去重)
    找规律
    C语言快速排序
    数组的初始化方法
    C语言选择排序
    副本机制
    安装完Kali的后续操作
    Bool盲注
    Python中的列表
  • 原文地址:https://www.cnblogs.com/zhangyuxin/p/6270199.html
Copyright © 2011-2022 走看看