代码原则:
开放封闭原则:已经实现的功能的封闭,已经实现功能的代码不允许被修改,但是可以被扩展
装饰器实例:
def warpper(func):
def inner():
print('登陆验证')
func()
return inner
@warpper
def cost():
print('付款')
@warpper
def joincar():
print('加入购物车')
# @staticmethod
# @classmethod之前使用过得
@warpper
def confirm():
print('确认收货')
if __name__ == '__main__':
cost()
joincar()
confirm()
#def warpper()将函数加载到内存
# @warpper
# cost=warpper(cost)
多层装饰器实例:
def wrap1(func):
print('begin wrap1')
def inner():
print('brgin wrap1 inner')
func()
print('end wrapl')
return inner
def wrap2(func):
print('begin wrap2')
def inner():
print('brgin wrap2 inner')
func()
print('end wrap2')
return inner
@wrap1
@wrap2
def cost():
print('付款')
# cost=wrap2(cost)
# cost=wrap1(wrap2(cost))
print('***********************')
if __name__ == '__main__':
cost()
结合:从下往上
执行:从上往下
闭包函数实现创建直线函数
def line_conf(k,b):
def line(x):
return k*x+b
return line#后面不能加括号
line1=line_conf(1.0,2.0)
line1(2)