Python 装饰器实战指南:从入门到精通的 10 个实用技巧

Python 装饰器实战指南

一、什么是装饰器

装饰器是 Python 中强大的工具,允许在不修改原函数代码的情况下添加新功能。

二、基础示例

def my_decorator(func):

def wrapper():

print("执行前")

func()

print("执行后")

return wrapper

@my_decorator

def say_hello():

print("Hello!")

三、计时装饰器

import time

from functools import wraps

def timer(func):

@wraps(func)

def wrapper(*args, **kwargs):

start = time.time()

result = func(*args, **kwargs)

end = time.time()

print(f"执行时间:{end-start:.4f}秒")

return result

return wrapper

四、缓存装饰器

from functools import lru_cache

@lru_cache(maxsize=128)

def fibonacci(n):

if n < 2:

return n

return fibonacci(n-1) + fibonacci(n-2)

五、总结

装饰器让代码更简洁可维护,建议使用@wraps 保留元信息。

相关推荐
聪明蛋子哟1 小时前
Stagehand v3多语言SDK:Python/Go/Rust/Java下的浏览器自动化统一方案
python·golang·rust
今天AI了吗2 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
卷无止境2 小时前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
TELL5212 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
Csvn3 小时前
🐍 Day 4: Python 控制流 — 条件、循环与推导式的艺术
后端·python
大鹏说大话5 小时前
从爬虫到决策引擎:大数据下自媒体如何用Python挖掘用户痛点
开发语言·爬虫·python
Niuguangshuo5 小时前
silero-vad:超轻量级开源 VAD 实践指南
开发语言·python
2501_944676166 小时前
揭秘!WORDTIP公司靠不靠谱?小白必看
大数据·人工智能·python
Minner-Scrapy7 小时前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
CODER03047 小时前
Anaconda和Mamba创建环境管理包常用命令合集
python·深度学习·conda·虚拟环境·mamba·常用命令大全