day12--装饰器】的更多相关文章

1,三元运算符:变量 = 条件返回True的结果 if 条件 else 条件返回false的结果:必须要有结果:必须要有if和else,只能是简单的情况. 2,传参包起来,星号打散 def outer(*args): print(args) print(*args) outer(1,2,3,4) #==> outer(*(1,2,3,4)) *打散,传参的时候,默认包起来包成一个元祖,拿出来用的时候,加*号打散 outer(*[1,2,3,4]) 3,print为何可以接收各种参数,因为默认里面…
1.什么是装饰器 装饰器指的是为被装饰对象(别人)添加新功能的工具 装饰器本身可以是任意可调用对象 被装饰器对象也可以是任意可调用对象 2.为何要用装饰器 开放封闭原则:指的是对修改封闭,对扩展开放 装饰器的实现原则: 1.不能修改被装饰对象的源代码 2.不能修改被装饰对象的调用方式 装饰器的目的 就是在遵循原则1和2的前提下为被装饰对象添加新功能 如何用 import time def index(): time.sleep(1) print('index page') def calc(fu…
一,什么是装饰器? 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等场景. 二,装饰器的形成过程. 现在我有一个需求,我想让你测试这个函数的执行时间,在不改变这个函数代码的情况下: import time def func1(): print('in func1') def timer(func): def inner(): start = time…
1.装饰器 什么是装饰器:装饰器指的是为被装饰对象添加新功能的工具 装饰器本身可以是任意调用对象 被装饰对象本身也可以是任意可调用对象 2.为何要用装饰器: 开放封闭原则: ①对修改源代码和调用方式是封闭的 ②对扩展功能是开放的 装饰器实现原则: 在不修改源代码和调用方式的前提下,给对象新增功能 装饰器的目的: 就是在遵循原则1和2的前提下为被装饰对象添加新功能 语法糖: @outter#foo = outter(foo) def foo(): ​ print("foo") 通用装饰器…
day11:装饰器(装饰器形成.装饰器作用.@语法糖.原则.固定模式) 装饰器形成:最简单的.有返回值的.有一个参数的.万能参数 函数起的作用:装饰器用于在已经完成的函数前后增加功能 语法糖:使代码变得简单 原则:开放封闭原则,因为已经发布的源码不可以轻易修改,所以使用装饰器在原来的基础上增加功能呢个 固定模式.万能参数.有返回值 import time def timmer(func): def inner(*args,**kwargs): start = time.time() time.s…
一.nonlocal关键字 1.作用:将L与E(E中的名字需要提前定义)的名字统一 2.应用场景:如果想在被嵌套的函数中修改外部函数变量(名字)的值 def outer(): num=10 print(num) # 输出结果为10 def inner(): nonlocal num num=20 print(num) #输出级结果为20 inner() print(num) # 输出结果为20 def outer(): num= # 必要写 是用于L与E的名字统一 def inner(): #…
一.补充:nonlocal关键字 1.作用:将L与E(E中的名字需要提前定义)的名字统一 2.应用场景:如果想在被嵌套的函数中修改外部函数变量(名字)的值 3.案例: def outer():         num = 10         print(num) # 10          def inner():               nonlocal num               num = 20               print(num) # 20         in…
一.nonlocal关键词 # global # num = # def fn(): # global num # L>G 将局部的名字与全局统一 # num = # fn() # print(num) # 结果为 1.作用:将local和enclosing(e中的名字需要提前定义)中的名字统一 2.应用场景:如果想在被嵌套的函数中修改外部函数变量(名字)的值 3.案例 def outer(): num = print(num) # 结果为 def inner(): # 如果想在被嵌套的函数中修…
函数的执行时,*打散.函数的定义时,*聚合. from functools import wraps def wrapper(f): # f = func1 @wraps(f) def inner(*args,**kwargs): #聚合 #args (1,2,3) '''执行函数之前的相关操作''' ret = f(*args,**kwargs) # 打散 1,2,3 '''执行函数之后的相关操作''' return ret return inner @wrapper # func1 = wr…
一 函数的有用信息 本函数的功能:绘图功能,实时接收数据并绘图.:return: 绘图需要的数据,返回给前端某标签 def f1(): ''' 本函数的功能:绘图功能,实时接收数据并绘图. :return: 绘图需要的数据,返回给前端某标签 ''' print(f1.__doc__) print(f1.__name__) print(666) print(f1.__doc__) #获取函数的说明信息 print(f1.__name__) # 获取函数的名字 f1() from functools…