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))
相关推荐
2301_7644413318 小时前
LISA时空跃迁分析,地理时空分析
数据结构·python·算法
chushiyunen19 小时前
python rest请求、requests
开发语言·python
cTz6FE7gA19 小时前
Python异步编程:从协程到Asyncio的底层揭秘
python
baidu_huihui19 小时前
在 CentOS 9 上安装 pip(Python 的包管理工具)
开发语言·python·pip
南 阳19 小时前
Python从入门到精通day63
开发语言·python
lbb 小魔仙19 小时前
Python_RAG知识库问答系统实战指南
开发语言·python
FreakStudio20 小时前
MicroPython LVGL基础知识和概念:底层渲染与性能优化
python·单片机·嵌入式·电子diy
素玥20 小时前
实训5 python连接mysql数据库
数据库·python·mysql
zzzzls~21 小时前
Python 工程化: 用 Copier 打造“自我进化“的项目脚手架
开发语言·python·copier