• python装饰器


    def home(name):
    print('你又来啦')
    print(name)
    def login(func):
    def inner(name):
    print('pass')
    return func(name)
    return inner
    def login1(a,b):
    def inner(name):

    print('diyipass')
    def wa(*name1):
    a(*name1)
    b(*name1)
    #name(name1)
    return name(*name1)
    return wa
    return inner
    #def login(func):
    # print('pass')
    # return func

    #@login#在不调用任何函数的情况下,这条语句依然会被执行
    #@login
    def DIANNAO(name):
    print('你还来')
    print(name)
    @login1(DIANNAO,home)
    def TV(name):
    print('你来啦')
    return 4

    #@login



    tv=login(TV)#装饰器里面只有一层,直接将功能函数赋给装饰器,
    #让装饰器去执行
    print(tv)
    '''
    传递进去的就是一个内存地址
    '''
    tv('alex')
    p=tv('alex')
    print(p)
    m=login(DIANNAO)
    m('mei')
    o=TV('alex')
    print(o)
    '''
    个人总结,装饰器就是包含,和顺序执行
    有些强大的装饰器框架
    再下次调用的时候只需要写函数就可以啦
    写一个装饰器的成本比较高。
    要调用的时候可以直接调用函数
    '''
    print('邪恶的------')
    t=login1(DIANNAO,home) #返回的inner的内存地址,这个时候没有实例化
    #只是将函数赋给longi1,DIANNAO,home分别表示连个函数
    print(t)#打印出inner函数的内存地址
    p=t(tv)#这个时候也没有进行实例化,将功能函数赋值给装饰器
    print(p)#打印出要执行函数的内存地址
    m=p('alex')#进行实例化
    print('m',m)#打印出返回结果,这个返回结果建议使用
    #return name(*name1),这种模式,这样可以接收功能函数的返回值
    print('你好')
    TV('alex') #直接利用装饰器进行的功能函数的实例化







  • 相关阅读:
    12.精益敏捷项目管理——产品协调小组笔记
    打字游戏
    提升权限
    下载者
    SMTP实现发送邮箱2(封装版)
    SMTP实现发送邮箱1
    电子邮件协议详解
    JSON运用在文件
    JSON函数表2
    JSON函数表1
  • 原文地址:https://www.cnblogs.com/xwl65/p/5186921.html
Copyright © 2020-2023  润新知