装饰器模式

来源:互联网 发布:天道总司 知乎 编辑:程序博客网 时间:2024/06/06 07:29

装饰器

from functools import wrapsdef log(text=""):    def decorator(func):        @wraps(func):        def wrapper(*args,**kw):            print("%s %s() begin call"%(text,func.__name__)            ret = func(*args,**kw)            print("%s %s() end call"%(text,func.__name__)            return ret        return wrapper    return decorator@log()def now():    print("now calling")now()''' output    now begin call    now calling    now end call

廖雪峰python教程
在js中也可以同样的给函数包装一层装饰器

    function before(){        console.log(" call begin")    }    function end(){        console.log(" call begin")    }    function wrapper(func,before,end){        return function(){            before.apply(null,arguments)            func.apply(null,arguments)            end.apply(null,arguments)        }    }    function now(){        console.log('now is calling')    }    var wrapnow = wrapper(now,before,end)    wrapnow()
原创粉丝点击