zoukankan      html  css  js  c++  java
  • 装饰器

    那么什么是装饰器?
    
    现在我们知道装饰器实际就是函数,我们也知道他们接受函数对象。但它们是怎样处理那些函数的呢?
    
    一般来说,当你包装一个函数的时候,你最终会调用它。
    
    最棒的是我们能在包装的环境下在合适的时机调用它,我们在执行函数之前,可以运行写预备代码。
    
    def foo():
        print 'aaaaaaa'
    a=foo()
    print a
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/ddd/a16.py
    aaaaaaa
    None
    
    
    from time import ctime,sleep
    def tsfunc(func):
        def wrappendFunc():
            print '[%s] %s() called' % (ctime(), func.__name__)
            return func()
        return wrappendFunc
    @tsfunc
    def foo():
        print 'aaaaaaa'
    a=foo()
    print a
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/eee/a2.py
    [Tue Apr 24 11:26:50 2018] foo() called
    aaaaaaa
    None
    
    
    在启动和模块导入代码之后,tsfunc()函数是一个显示何时调用函数的时戳的装饰器。
    
    它定义了一个内部的函数wrappedFunc(),该函数增加了时戳以及调用了目标函数。
    
    装饰器的返回值是一个"包装了"的函数
    

  • 相关阅读:
    第一篇代码 嗨翻C语言 21点扑克
    Windows7 sp1 64位下安装配置eclipse+jdk+CDT+minGW
    MinGW-64 安装
    Windows Live Writer配置步骤
    Css 居中
    c++ 常量成员函数
    c/c++ 引用计数
    C++ 《STL源码剖析》学习-vector
    C/C++ 有符号数和无符号数
    cocos2d 内存管理机制
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349230.html
Copyright © 2011-2022 走看看