Python 的装饰器语法
发布时间:2023-06-29 14:10:01 所属栏目:教程 来源:
导读:对装饰器这样的高阶函数的应用,Python 提供了特殊的装饰器语法,用法如下:
def decorate(input_function):
def output_function():
pass
return output_function
@decorate
def input_fun
def decorate(input_function):
def output_function():
pass
return output_function
@decorate
def input_fun
对装饰器这样的高阶函数的应用,Python 提供了特殊的装饰器语法,用法如下: def decorate(input_function): def output_function(): pass return output_function @decorate def input_function(): pass 首先定义装饰器函数 decorate,然后使用 @decorate 装饰需要增强功能的函数 input_function。以上使用装饰器语法 @decorate 的代码会被翻译如下: def decorate(input_function): def output_function(): pass return output_function def input_function(): pass input_function = decorate(input_function) decorate 函数接受输入参数 input_function,返回一个功能增强的函数 output_function。 用功能增强的新函数 output_function 替换原有的旧函数 input_function。 使用装饰器语法 在本小节,使用 Python 的装饰器语法实现对三种排序算法的性能评测: import time def decorate(input_sort): def output_sort(): start_time = time.time() input_sort() end_time = time.time() print('%.2f seconds' % (end_time - start_time)) return output_sort 装饰器 decorate 是一个高阶函数,输入参数 input_sort 是一个排序函数,返回值是 output_sort 一个功能增强的排序函数。 在 output_sort 函数的头部,记录开始时间,调用原排序函数 input_sort,在 output_sort 函数的尾部,记录结束时间。 @decorate def quick_sort(): time.sleep() @decorate def bubble_sort(): time.sleep() @decorate def select_sort(): time.sleep() 使用装饰器 decorate 装饰 quick_sort,得到一个功能增强的 quick_sort;使用装饰器 decorate 装饰 bubble_sort,得到一个功能增强的 bubble_sort;使用装饰器 decorate 装饰 select_sort,得到一个功能增强的 select_sort。 quick_sort() bubble_sort() select_sort() 依次调用 quick_sort、bubble_sort、select_sort,打印它们各自的运行时间,程序输出如下: 1.00 seconds 2.00 seconds 3.00 seconds (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |