什么是装饰器?
装饰器是一种Python语言的特性,它允许在不修改已有函数的情况下,向函数添加额外的功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。
通俗点儿说明一下装饰器的特点。装饰器实现了别的代码实现不了的功能吗?没有,用别的代码照样可以实现。那为什么要用装饰器?因为简单易用、代码简洁,所以符合Python的网格。
今天以@timer装饰器举例。timer不是python内置的装饰器,而是我们自定义的,之所以叫timer,是为了见到名字就联想到功能。timer是将需要计时的程序嵌套在内部,在实现原程序功能的同时,把耗费的时间计算出来。以下引用了前几天发布的显示2024年节日的代码,整个代码主要分为3个部分——定义timer函数、将打印2024年节日的代码包装在timer函数之中、运行函数得出耗费时间:
from lunarcalendar.festival import festivals
import time
def timer(func):#可以改成自己喜欢的名字,不必“timer”
def wrapper(*args, **kwargs):#可以改成自己喜欢的名字,不必“wrapper”
# 记录开始时间
start_time = time.time()
# 给实际执行的函数传递参数
result = func(*args, **kwargs)
# 记录结束时间
end_time = time.time()
# 计算并输出程度运行耗费的时间
execution_time = end_time - start_time
print(f"程序执行了: {execution_time} 秒")
#返回程序运行耗费的时间
return result
# 将wrapper函数的运行结果返回
return wrapper
@timer
def test():
print("2024年节日--中文")
for fest in festivals:
print(fest.get_lang('zh'), fest(2024))
print('-------------------------------')
test()
结果:

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/75008
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!