技术文摘
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 装饰器入门 四则简单示例
- 数科业务中 UI 自动化低代码平台 webeye 的应用
- 高并发情境中性能优化:RabbitMQ 性能调优策略解析
- Seata Kylin:大规模数据高效处理的分布式事务引擎
- 系统架构中的数据同步策略设计
- 商家巨石应用基于模块联邦和大仓模式的拆分实践
- 基于静态编译的微服务应用构建
- 怎样编写技术文档
- 转转游戏账号订单流程的重构历程
- 谷歌 Project IDX 会阻碍其他应用程序开发框架吗?
- Vue 3 中创建多布局系统的三种方法
- 前端整洁架构,你知晓几何?
- Redis 分布式锁使用中可能存在的问题
- 深度探究 Java 中乐观锁与悲观锁的奥秘
- Redis 单线程性能缘何优于多线程
- Seata Stellar:实现不同框架无缝整合的分布式事务方案