博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 装饰器 part1
阅读量:6878 次
发布时间:2019-06-26

本文共 1169 字,大约阅读时间需要 3 分钟。

python 装饰器

早就应该掌握的技能。。。。

装饰器:本质是函数,用来装饰其他的函数,给他们附加功能。

实现装饰器要素

  1. 函数既‘变量’,以操作变量的形式操作函数;
  2. 高阶函数和嵌套函数的使用;

函数既‘变量’

代码举例

import timedef func(f):    '''    将函数以变量的形式传递进来    '''    start = time.time()    f()    end = time.time()    print('函数f(也就是test)的运行时间是:{}'.format(end-start))    print('in func....')    return f    def test():    time.sleep(2)    print('in test.....')    val = func(test) # val == testval() # test()# 以上实现了一个特别native的装饰器功能,# 在func内部可以增加其他功能(例如计算函数运行时间),最后return f

嵌套函数

进一步改进

import timedef decorator(func):    def process():        start = time.time()        func()        end = time.time()        print('函数func(也就是被装饰的函数)的运行时间是:{}'.format(end-start))    return process    def decorated():    time.sleep()    print('decorated function')    decorated = decorator(decorated) # decorated = return 来的processdecorated() # 也就是调用process

最终版

import timedef decorator(func):    def process():        start = time.time()        func()        end = time.time()        print('函数func(也就是被装饰的函数)的运行时间是:{}'.format(end-start))    return process@decorator # python 装饰器的正确使用    def decorated():    time.sleep()    print('decorated function')# 此时不用再像上面一样赋值,可以直接调用decorated()

转载地址:http://pdgfl.baihongyu.com/

你可能感兴趣的文章
Flutter Web - 目标全平台开发的Flutter再下一城!
查看>>
RAID-10 阵列的创建(软)
查看>>
小菜鸡进阶之路-First week
查看>>
【原创翻译】布尔值(boolean)
查看>>
关于scrapy的piplines
查看>>
Android源代码下载编译
查看>>
jsp---语句对象Statement
查看>>
RESTful API
查看>>
前端UI框架总结
查看>>
Atom 初识
查看>>
通向架构师的道路(第一天)之Apache整合Tomcat - lifetragedy的专栏 - 博客频道 - CSDN.NET...
查看>>
Javascript创建对象的7种模式
查看>>
Shell工作笔记01
查看>>
项目、软件开发过程中版本术语
查看>>
CSS实现背景透明,文字不透明(各浏览器兼容)
查看>>
【转】[大学引导]超级链接、字体颜色、音乐播放公式
查看>>
T-SQL中INSERT、UPDATE
查看>>
Linux下Nginx服务器配置Modsecurity实现Web应用防护系统
查看>>
openSUSE13.2安装ruby和rails
查看>>
python 高级函数
查看>>