首页 > 编程语言 > 详细

老男孩Python运维自动化课程之--装饰器

时间:2016-05-08 18:04:59      阅读:240      评论:0      收藏:0      [点我收藏+]
  • 不带参数的装饰器
    def w1(main_func):
        def outer(*args, **kwargs):
            before_func(*args, **kwargs) #before_func定义忽略
    
            main_func(*args, **kwargs)
    
            after_func(*args, **kwargs)  #after_func定义忽略
        return outer
    
    @w1
    def show()
        pass
    # 装饰器w1将show作为其第一个参数,并使用返回值重新定义了show
  • 带参数的装饰器
    def login(name, password)...
    
    def errorHandler()...
    
    def Filter(before_func, after_func):
        def outer(main_func):
            def wrapper(*args, **kwargs):
                before_result = before_func(*args, **kwargs)
                main_result = main_func(*args, **kwargs)
                after_result = after_func(*args, **kwargs)
        return wrapper
    return outer
    
    @Filter(login, errorHandler)
    def show():
        pass
    
    #先运行一次Filter(login, errorHandler),用返回值替换自身。然后再运行outer(main_func)
    

      

 

老男孩Python运维自动化课程之--装饰器

原文:http://www.cnblogs.com/bettybear/p/5470880.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!