python面试题

python装饰器

装饰器的本质就是一个函数能为其它函数增加额外功能

装饰器不加参数

python 复制代码
#coding:utf-8
from time import time

#装饰器函数
def elapsed(target):
    "统计目标函数执行的耗时"
    def decorated(*args,**kwargs):
        start = time()
        r = target(*args,**kwargs)
        end = time()
        print("函数执行的耗时:",end - start)
        return r
    return decorated

#对目标函数进行elapsed装饰器函数的调用
#返回一个装饰后的名字还是叫power_sum的函数
@elapsed
def power_sum(n):
    total = 0
    for i in range(1,n+1):
        total += i ** 2
    return total
if __name__ == '__main__':
    #调用装饰器函数,装饰目标函数,得到一个装饰后的函数
    # power_sum = elapsed(power_sum)
    # print(power_sum(100000))
    #加上python的装饰器后
    print(power_sum(100000))

装饰器加上参数

python 复制代码
#coding:utf-8
from time import time

#装饰器函数
def elapsed_precision(n):
    def elapsed(target):
        "统计目标函数执行的耗时"
        def decorated(*args,**kwargs):
            start = time()
            r = target(*args,**kwargs)
            end = time()
            print("函数执行的耗时:",round(end - start,n))
            return r
        return decorated
    return elapsed

#对目标函数进行elapsed装饰器函数的调用
#返回一个装饰后的名字还是叫power_sum的函数
@elapsed_precision(2)
def power_sum(n):
    total = 0
    for i in range(1,n+1):
        total += i ** 2
    return total
if __name__ == '__main__':
    #调用装饰器函数,装饰目标函数,得到一个装饰后的函数
    # power_sum = elapsed(power_sum)
    # print(power_sum(100000))
    #加上python的装饰器后
    print(power_sum(100000))
相关推荐
云和数据.ChenGuang11 分钟前
tensorflow生成随机数和张量
人工智能·python·tensorflow
测试老哥1 小时前
python+requests+excel 接口测试
自动化测试·软件测试·python·测试工具·测试用例·excel·接口测试
AI纪元故事会1 小时前
冰泪与雨丝:一个AI的Python挽歌
开发语言·人工智能·python
ColderYY1 小时前
Python连接MySQL数据库
数据库·python·mysql
寒秋丶2 小时前
Milvus:数据库层操作详解(二)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
凯歌的博客2 小时前
python虚拟环境应用
linux·开发语言·python
西柚小萌新2 小时前
【深入浅出PyTorch】--8.1.PyTorch生态--torchvision
人工智能·pytorch·python
MonkeyKing_sunyuhua2 小时前
can‘t read /etc/apt/sources.list: No such file or directory
python
多喝开水少熬夜3 小时前
损失函数系列:focal-Dice-vgg
图像处理·python·算法·大模型·llm
初学小刘4 小时前
基于 U-Net 的医学图像分割
python·opencv·计算机视觉