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

    python装饰器

    当一个函数中,不同逻辑混杂在一起的时候,程序的可读性会大打折扣。这个时候,可以考虑用一种叫做“装饰器”的东西来重新整理代码。
    应用场景,顾名思义是去装饰一个东西,这里的东西指一个函数func,想要不修改func去为func添加一些附加功能,如权限验证,程序运行时间等。

    import time
    
    def display_time(func):
        def wrapper(*args):#这里wrapper其实就是新的逻辑上的func ,*args就是func里面传递过来的参数
            start = time.time()
            result = func(*args)#犹豫func函数有返回值 所以用result去接受一下 然后模拟func的返回,返回result
            end = time.time()
            print("Total time: {} s".format(end - start))
            return result
        return wrapper#这里是固定格式返回该函数的地址
    
    def is_prime(num):#素数逻辑函数
        if num < 2:
            return False
        elif num == 2:
            return True
        else:
            for i in range(2,num):
                if num % i == 0:
                    return False
            return True
    
    @display_time#为prime_nums(maxnumber)添加程序运行计数功能
    def prime_nums(maxnumber):
        count = 0
        for i in range(2, maxnumber):
            if is_prime(i):
                count = count + 1
               # print(i)
        return count;#返回count数值
    
    cnt = prime_nums(1000)#调用被装饰过的prime_nums函数
    print(cnt);
    
  • 相关阅读:
    Java类与对象
    读《大道至简——团队缺乏的不只是管理》有感
    java课后作业
    c++ 创建单项链表
    c++ 结构指针和双向链表
    c++ 自定义数据结构运用
    c++ 时间函数和结构化数据
    c++ 结束程序的几种方式
    c++ main函数的参数
    c++ 参数个数可变的函数
  • 原文地址:https://www.cnblogs.com/DengSchoo/p/12617935.html
Copyright © 2011-2022 走看看