zoukankan      html  css  js  c++  java
  • 小练习2

    1#测试函数执行时间的装饰器示例
    import time
    def timing_func(fn):
        def wrapper():
            start=time.time()
            fn()   #执行传入的fn参数
            stop=time.time()
            return (stop-start)
        return wrapper
    @timing_func
    def test_list_append():
        lst=[]
        for i in range(0,100000):
            lst.append(i)  
    @timing_func
    def test_list_compre():
        [i for i in range(0,100000)]  #列表生成式
    a=test_list_append()
    c=test_list_compre()
    print("test list append time:",a)
    print("test list comprehension time:",c)
    print("append/compre:",round(a/c,3))
    
    test list append time: 0.0219423770904541
    test list comprehension time: 0.007980823516845703
    append/compre: 2.749

    2.统计异常出现次数和时间的装饰器
    写一个装饰器,统计某个异常重复出现指定次数时,经历的时长。
    import time
    import math
    
    
    def excepter(f):
        i = 0
        t1 = time.time()
        def wrapper(): 
            try:
                f()
            except Exception as e:
                nonlocal i
                i += 1
                print(f'{e.args[0]}: {i}')
                t2 = time.time()
                if i == n:
                    print(f'spending time:{round(t2-t1,2)}')
        return wrapper

    3.定制递减迭代器
    #编写一个迭代器,通过循环语句,实现对某个正整数的依次递减1,直到0.
    class Descend(Iterator):
        def __init__(self,N):
            self.N=N
            self.a=0
        def __iter__(self):
            return self 
        def __next__(self):
            while self.a<self.N:
                self.N-=1
                return self.N
            raise StopIteration
        
    descend_iter=Descend(10)
    print(list(descend_iter))
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
  • 相关阅读:
    Linux系统的关机、重启、睡眠
    Java 读写Properties配置文件
    Java识别操作系统
    Java DES 加解密("DES/CBC/PKCS5Padding")
    Java获取本机IP
    编写SHELL脚本--编写简单脚本
    配置yum软件仓库(redhat 7.0)
    简单的redis测试
    Seaslog安装和参数配置
    mac使用phpize进行安装的时候碰到的问题
  • 原文地址:https://www.cnblogs.com/miaoweiye/p/12613679.html
Copyright © 2011-2022 走看看