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

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-

    # 系统自动回收,没有引用,自动回收。
    #匿名函数 无名就会被自动回收
    abc = lambda x:x*3
    print(abc(2))

    #装饰器:
    # 定义= 函数 #装饰其他函数
    # 为其他函数添加附加功能
    # 装饰器 对被修饰的函数是透明的
    # 不改函数源码 不改调用方式

    import time

    def zzz(x): #装饰器
    def y(*aa,**bb):
    cc=time.time()
    x()
    ccc=time.time()
    print('装饰器统计运行时间 %s' %(ccc-cc))
    return y
    @zzz
    def a():
    time.sleep(1) #停3秒
    print('in the a')
    a()

    #装饰器
    #函数是“变量”
    #高阶函数
    # 把一个函数名当做实参的传给另一个函数 不修改函数,为函数加功能
    # 返回值中包含函数名
    #嵌套函数

    #高阶函数+嵌套函数=装饰器

    def bar():
    print('这是bar函数')
    def foo():
    print('这是装饰器')
    bar()
    foo()
    print('显示bar函数的内存地址',bar) #表示内存地址

    #高阶函数
    import time
    def aa():
    time.sleep(1) #等待1秒
    print('函数A')

    def bb(x):
    xx=time.time() #截取开始时间
    print(x) #aa的内存地址
    x() #aa的内容
    yy=time.time() #截取结束时间
    print('运行时间%s' % (yy-xx))
    bb(aa)


    #返回值定义函数(不改函数调用方式)
    import time
    def bar():
    time.sleep(3)
    print('函数AAA')
    def bar1(x):
    print(x) #显示内存地址
    return x
    bar1(bar())
    #a=bar1(bar());a() 等同上条

    print('- - - - - - - - - - - - - - - - ')
    ###嵌套函数
    def foo():
    print('嵌套函数外,这是foo')
    def bar():
    print('嵌套函数内,这是bar ')
    bar()
    foo()

    #完整装饰器++++++++++
    print('###完整装饰器 有缺点###')
    import time

    def xx(z): #装饰器
    def xxx():
    mm=time.time()
    z()
    ww=time.time()
    print('这是装饰器+的功能:运行时间%s' %(ww-mm))
    return xxx
    @xx # aa=xx(aa) #不改变调用方式 在装饰器头部加
    def aa():
    time.sleep(1)
    print('这是AA')

    def bb():
    time.sleep(1)
    print('这是BB')


    aa() #aa函数 头部加 装饰器 @xx
    bb() #bb函数 头部没加 装饰器 @xx
  • 相关阅读:
    npm 引入第三方过滤器
    登录加密 md5
    JavaScript 日期处理类库 moment
    Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
    js 常见的小数取整问题
    vue 路由跳转到外部链接
    js some和filter用法和区别
    前端调用后端接口返回200(成功状态码),后端有返回,但是控制台Network Response为空,没展示任何信息
    二叉树的镜像
    树的子结构
  • 原文地址:https://www.cnblogs.com/pojue/p/7906748.html
Copyright © 2011-2022 走看看