标签:*args 开放封闭原则 用户 提前 turn 日记 wrapper 影响 执行
装饰器:
开放封闭原则
	  1.对扩展是开放的
	    我们说,任何一个程序,不可能在设计之		初就已经想好了所有的功能并且未来不做		任何更新和修改。所以我们必须允许代码		扩展、添加新功能。
	  2.对修改是封闭的
			就像我们刚刚提到的,因为我们写的一个函数,很有可能已经交付给其他人使用了,如果这个时候我们对其进行了修改,很有可能影响其他已经在使用该函数的用户。
装饰器完美的遵循了这个开放封闭原则。
		3.带参装饰器:需要自己返回以函数作为参数的装饰器。
			def outer(flag):
			    def timer(func):
			        def inner(*args,**kwargs):
			            if flag:
			                print(‘‘‘执行函数之前要做的‘‘‘)
			            re = func(*args,**kwargs)
			            if flag:
			                print(‘‘‘执行函数之后要做的‘‘‘)
			            return re
			        return inner
			    return timer
			@outer(False)
			def func():
			    print(111)
			func()
		4.多个装饰器装饰同一个函数:
			 多个装饰器是按照装饰器的顺序进行执行的.装饰器就是把函数的名字传入进去, 在执行函数之前, 进行一些提前的处理.
			 def wrapper1(func):
			    def inner():
			        print(‘wrapper1 ,before func‘)
			        func()
			        print(‘wrapper1 ,after func‘)
			    return inner
			def wrapper2(func):
			    def inner():
			        print(‘wrapper2 ,before func‘)
			        func()
			        print(‘wrapper2 ,after func‘)
			    return inner
			@wrapper2
			@wrapper1
			def f():
			    print(‘in f‘)
f()
标签:*args 开放封闭原则 用户 提前 turn 日记 wrapper 影响 执行
原文地址:http://www.cnblogs.com/De-Luffy/p/7252341.html