博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Date5
阅读量:6837 次
发布时间:2019-06-26

本文共 2207 字,大约阅读时间需要 7 分钟。

装饰器 定义: 本质是函数,(装饰其他函数)就时为其他函数添加附加功能 原则: 1、不能修改被装饰的函数的源代码 2、不能修改被装饰的函数的调用方式 实现装饰器的知识储备: 1、函数即“变量” 2、高阶函数 a:把一个函数名当做实参传给另一个函数(在不修改被装饰函数源代码的情况下为其添加功能) b:返回值中包含函数名(不修改函数调用方式) 3、嵌套函数 高阶函数+嵌套函数 ==装饰器 def logger():     print('logging') def test1():     logger()     pass def test2():     logger()     pass test1() test2()
import timedef timmer(func):    def warpper(*args,**kwargs):        start_time = time.time()        func()        stop_time = time.time()        print("the func time is %s"%(stop_time-start_time))    return warpper@timmerdef test1():    time.sleep(3)    print("in the test1")test1()
View Code
#Author:Brill #EXP1def foo():    print('in the foo')    bar()def bar():    print("in the bar")foo()#EXP2import timedef bar():    time.sleep(3)    print("in the bar ")def test1(func):    start_time = time.time()    func()  #run time    stop_time = time.time()    print("the func run time is %s"%(stop_time-start_time))test1(bar)#Exp3import timedef bar():    time.sleep(3)    print("in the bar ")def test2(func):    print(func)    return func#print(test2(bar))bar = test2(bar)bar()  #run bar
View Code
#Author:Brill import timedef timer(func):  #timer(test1)  func = test1    def deco():        start_time = time.time()        func() #run test1        stop_time = time.time()        print("the func run time is  %s" % (stop_time - start_time))    return deco@timer # test1 = timer(test1)def test1():    time.sleep(3)    print("in the test1")@timerdef test2():    time.sleep(3)    print("in the test2")test1()    #--->decotest1()
View Code
#Author:Brill import timedef timer(func):  #timer(test1)  func = test1    def deco(*args,**kwarge):        start_time = time.time()        func(*args,**kwarge) #run test1        stop_time = time.time()        print("the func run time is  %s" % (stop_time - start_time))    return deco@timer    # test1 = timer(test1)def test1():    time.sleep(1)    print("in the test1")@timer # test2 = timer(test2) = deco test2=test(name)def test2(name,age):    time.sleep(3)    print("test2:",name,age)test1( ) #--->decotest2("alex",22)
View Code

 斐波那契数列:

#Author:Brill def fib(max):    n,a,b,=0,0,1    while n
View Code

 

 

 

转载于:https://www.cnblogs.com/genghenggao/p/9039909.html

你可能感兴趣的文章
类和对象的定义
查看>>
Java-GC-标记清除算法
查看>>
(转载)Java多线程入门(一)
查看>>
[C#]中获取当前程序运行路径的方法
查看>>
我的第一天
查看>>
SGU 164.Airline(结论题)
查看>>
findlibrary returned null
查看>>
scala学习手记28 - Execute Around模式
查看>>
Filebeat的工作原理
查看>>
Elasticsearch配置文件详解
查看>>
Java虚拟机学习 - 查看JVM参数及值的命令行工具
查看>>
Ubiquitous Religions(friends变形)
查看>>
机器学习——聚类分析和主成分分析
查看>>
Win10上 visual studio设置为本地IIS运行网站时 必须以管理员身份加载项目的解决方法...
查看>>
记录常见的HTTP请求错误
查看>>
Java字符串替换函数replace、replaceFirst、replaceAll
查看>>
Ubuntu下搭建Android开发环境
查看>>
汇编指令
查看>>
yum安装mysql后root用户的临时密码
查看>>
mysql 原理~ 乐观锁和悲观锁
查看>>