技术文摘
Python 装饰器入门的四则简单示例
2024-12-30 15:15:33 小编
Python 装饰器入门的四则简单示例
在 Python 编程中,装饰器是一种强大的工具,它可以在不修改被装饰函数源代码的情况下,为函数添加额外的功能。下面通过四则简单示例来帮助您入门 Python 装饰器。
示例一:添加日志功能
def log_decorator(func):
def wrapper(*args, **kwargs):
print(f"调用函数 {func.__name__}")
result = func(*args, **kwargs)
print(f"函数 {func.__name__} 执行完毕")
return result
return wrapper
@log_decorator
def add_numbers(a, b):
return a + b
print(add_numbers(2, 3))
示例二:计算函数执行时间
import time
def time_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 {func.__name__} 执行时间为:{end_time - start_time} 秒")
return result
return wrapper
@time_decorator
def long_running_function():
time.sleep(2)
long_running_function()
示例三:参数验证
def validate_params_decorator(func):
def wrapper(*args, **kwargs):
if len(args) < 2:
print("参数数量不足")
return
result = func(*args, **kwargs)
return result
return wrapper
@validate_params_decorator
def multiply_numbers(a, b):
return a * b
multiply_numbers(3)
示例四:缓存结果
def cache_decorator(func):
cache = {}
def wrapper(*args):
if args in cache:
print("从缓存中获取结果")
return cache[args]
result = func(*args)
cache[args] = result
print("将结果缓存")
return result
return wrapper
@cache_decorator
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n - 1)
factorial(5)
factorial(5)
通过以上四则简单示例,您应该对 Python 装饰器有了初步的认识和了解。装饰器在实际编程中有着广泛的应用,可以使代码更加简洁、灵活和可维护。不断探索和实践,您将能够更好地掌握这一强大的编程技术。
TAGS: Python 示例 Python 基础 Python 装饰器入门 四则简单示例
- HarmonyOS 三方件开发之 Flexbox 流式布局组件(18)
- Matplotlib 超全神器速查表
- 14 个 Linux 实用技巧 80% 的人都不知
- Spring Cloud 中 Zuul 网关原理与配置全解析
- 七天近千星!哈佛小哥 Github 仓库从零带你学计算机图形学
- 面试官提问 Dubbo 优雅上下线 你却不知其为何物
- 带你领略 Java 字符串的奥秘
- 8 个例子让你弄懂指针类型
- JavaScript 类型转换:一篇文章全知晓
- Spring Boot 全局异常处理的优雅写法
- 谷歌开源数据库竟如此牛,上 Github 热榜我才知晓
- 系统架构的演变全景
- 人工智能机器学习 AI 会中毒吗?数据中毒究竟是什么?
- Spring Cloud Eureka 的服务注册及发现
- 不依赖缓存服务的数据缓存方式有哪些?