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

    一.准备知识

    1.函数作用域 :  由内到外优先级减小   【L(嵌套函数定义的变量)_E(函数内定义的变量)_G(全局变量)_B(系统默认定义变量)】

    2.高阶函数 :(1) 函数名可以作为参数输入

                          (2) 函数名可以作为返回值

    3.闭包: 在一个内部函数里,对外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包。

    二.概念

    装饰器是个函数,它是为其他函数增加功能用的。

    import time

    # 装饰器函数 //给f1,f2函数加上显示函数运行时间的功能
    def logger(kal=""):#添加装饰器参数
    def show_time(f):
    def inter(*x,**y):
    start=time.time()
    f(*x,**y)
    end=time.time()
    print("spand %s"%(end-start))
    if kal=="ture":
    print("打印日志")
    return inter
    return show_time

    @logger("ture")
    # @show_time#f1=show_time(f1)
    def f1():
    print("f1 time")
    time.sleep(2)

    @logger()
    # @show_time
    def f2():
    print("f2 time")
    time.sleep(3)

    @logger("ture")
    # @show_time
    def f3(*a,**b):#加任意参数都可以
    s=0
    for i in a:
    s+=i
    print(s)
    time.sleep(1)

    f3(1,2,3,5,7)
    f1()
    f2()
    go go go! ! !
  • 相关阅读:
    android自定义View之NotePad出鞘记
    一个电商项目的Web服务化改造
    一个电商项目的Web服务化改造
    POJ 2886 Who Gets the Most Candies?
    POJ 2392 Space Elevator
    POJ 1276 Cash Machine
    POJ 2063 Investment
    CodeForces 159c String Manipulation 1.0
    Gym
    FZU 1921 栀子花开
  • 原文地址:https://www.cnblogs.com/zbooo/p/8686567.html
Copyright © 2011-2022 走看看