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))
相关推荐
zone773913 小时前
001:简单 RAG 入门
后端·python·面试
F_Quant13 小时前
🚀 Python打包踩坑指南:彻底解决 Nuitka --onefile 配置文件丢失与重启报错问题
python·操作系统
允许部分打工人先富起来14 小时前
在node项目中执行python脚本
前端·python·node.js
IVEN_14 小时前
Python OpenCV: RGB三色识别的最佳工程实践
python·opencv
haosend15 小时前
AI时代,传统网络运维人员的转型指南
python·数据网络·网络自动化
曲幽15 小时前
不止于JWT:用FastAPI的Depends实现细粒度权限控制
python·fastapi·web·jwt·rbac·permission·depends·abac
IVEN_1 天前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang1 天前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮1 天前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling1 天前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python