首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
day11.装饰器初识
】的更多相关文章
day11.装饰器初识
1.开放封闭原则 原则: 开放封闭原则,对扩展是开放的,对修改是封闭的. 封版概念:当写好一个功能以后,就不可以再修改此函数,避免下面一系列的调用产生错误. 因此产生了装饰器 2.装饰器形成过程 我们来模拟一个发明汽车的过程.首先封装了一个汽车,汽车可以跑起来就是已经封装好的功能函数 按照开放封闭思想,此函数不能再修改,且调用是 car()直接调用 def car(): print('小汽车跑起来') car() 社会进步了,某天人们不满足现状,想计算一下汽车跑一段路程的时间,然后想增加了计时功…
python 全栈开发,Day11(函数名应用,闭包,装饰器初识,带参数以及带返回值的装饰器)
一.函数名应用 函数名是什么?函数名是函数的名字,本质:变量,特殊的变量. 函数名(),执行此函数. python 规范写法 1. #后面加一个空格,再写内容,就没有波浪线了. 2.一行代码写完,下面一行的的内容要空2行, 3.逗号2个边的内容要有空格. 如果是不规范的写法,Pycharm编辑器,会有灰色的波浪线显示. 1.单独打印函数名 def func1(): print(666) print(func1) 执行输出: <function func1 at 0x000001455800A95…
python3 装饰器初识 NLP第三条
还是先抄一条NLP假设... 三,有效果比有道理更重要 光说做法有道理或者正确而不顾是否有效果,是在自欺欺人. 在三赢(我好,人好,世界好)的原则基础上追求效果,比坚持什么是对的更有意义. 说道理往往是把焦点放在过去的事情上,注重效果则容易把注意里放在未来. 效果是原定计划的意义基础,亦是所有行动的指标. 有道理是有理性方面的标准决定的,因为没有两个人的信念,价值观和规条是一样的,所以没有两个人的“道理”是一样的. 故此,坚持道理只不过是坚持一套不能放在另一个人身上的信念,价值观和规条. 真…
python之装饰器初识
一.@abstractmethod 1.抽象类的作用:规范编程模式 多人开发.复杂的需求.后期的扩展 是一种用来帮助我们完成规范化的手段 2.如何定义抽象类 1,from abc import ABCMeta,abstractmethod 2,在这个类创建的时候指定 metaclass = ABCMeta 3,在你希望子类要实现的方法的上一行加上一个 @abstractmethod装饰器 3.使用抽象类 1,继承这个类 2,必须实现这个类中被@abstractmethod装饰器装饰的方法 4.实…
day11 装饰器---函数的使用方法
这个是一个难点,以后面试会经常出现的,要搞懂! 装饰器升级版,进阶内容1: def outer(flag): def wrapper(func): def inner(*args,**kwargs): if flag: print('执行%s之前我加了一个功能'%func.__name__) ret = func(*args,**kwargs) #qqxing return ret return inner return wrapper @outer(True) #qqxing = wrappe…
Day 12 开放封闭原则,装饰器初识
nonlocal关键字 # 作用:将 L 与 E(E中的名字需要提前定义) 的名字统一# 应用场景:如果想在被嵌套的函数中修改外部函数变量(名字)的值# 案例:def outer(): num = 10 print(num) # 10 def inner(): nonlocal num num = 20 p77rint(num) # 20 inner() print(num) # 20 开放封闭原则:不改变调…
day11:装饰器
1,引子,计算函数的运行时间: import time def func(): time.sleep(0.01) # 为了计算运行时间差的时候有值 print("func") def timer(f): # 装饰器函数 def inner(): start_time = time.time() # 从1970年开始的毫秒数 f() # 内部函数应用外部函数变量,闭包,被装饰的函数 end_time = time.time() exec_time = start_time - end_t…
python基础一 day11 装饰器复习
# 复习# 讲作业# 装饰器的进阶 # functools.wraps # 带参数的装饰器 # 多个装饰器装饰同一个函数# 周末的作业 # 文件操作 # 字符串处理 # 输入输出 # 流程控制 # 装饰器# 开发原则 : 开放封闭原则# 装饰器的作用 :在不改变原函数的调用方式的情况下,在函数的前后添加功能# 装饰器的本质 : 闭包函数 # def wrapper(func):# def inner(*args,**kwargs):# print('在被装饰的函数执行之前做的事')# ret =…
1.16 Python基础知识 - 装饰器初识
Python中的装饰器就是函数,作用就是包装其他函数,为他们起到修饰作用.在不修改源代码的情况下,为这些函数额外添加一些功能,像日志记录,性能测试等.一个函数可以使用多个装饰器,产生的结果与装饰器的位置顺序有关. 装饰器基本形式: @装饰器1 def 函数1: 函数体 相当于:==> 函数1 = 装饰器1(函数1) 装饰器特点: 1.不修改源代码的调用方式 2.不修改源代码内容 3.装饰器有高阶函数与递归函数相融合的特点 多个装饰器修饰,示例: @foo @spam def bar():pass…
python 装饰器-初识
一.装饰器的形成过程 1.函数无参数,无返回值 import time def f1(): # 无参数,无返回值 time.sleep(1) print("Hello, World!") def timer(f): # f 是函数名 def inner(): # 闭包 start = time.time() f() end = time.time() total = end - start print(total) return inner f1 = timer(f1) # 调用tim…
python基础一 day11 装饰器(1)
接收的时候是聚合,调用的时候是打散 print(*args)本来在里面用的时候是用args,是一个元祖,加上一个 * 号,把元祖解包了(打散了). from functools import wraps def wrapper(func): @wraps(func) def inner(*args,**kwargs): print('在被修饰的函数前面') ret=func(*args,**kwargs) print('在被修饰的函数后面') return ret return inne…
day11 - 15(装饰器、生成器、迭代器、内置函数、推导式)
day11:装饰器(装饰器形成.装饰器作用.@语法糖.原则.固定模式) 装饰器形成:最简单的.有返回值的.有一个参数的.万能参数 函数起的作用:装饰器用于在已经完成的函数前后增加功能 语法糖:使代码变得简单 原则:开放封闭原则,因为已经发布的源码不可以轻易修改,所以使用装饰器在原来的基础上增加功能呢个 固定模式.万能参数.有返回值 import time def timmer(func): def inner(*args,**kwargs): start = time.time() time.s…
python自动化之装饰器
1 高阶函数 满足下列条件之一就可成函数为高阶函数 某一函数当做参数传入另一个函数中 函数的返回值包含n个函数,n>0 高阶函数示范 def bar(): print 'in the bar' def foo(func): res=func() return res foo(bar) foo(bar)()等价于 先bar=foo(bar) 再 bar() 2 内嵌函数和变量作用域 定义:在一个函数体内创建另外一个函数,这种函数就叫内嵌函数(基于python支持静态嵌套域) 嵌套函数示例 def…
Python之旅Day5 列表生成式 生成器 迭代器 装饰器
装饰器 器即函数,装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 装饰器涉及的知识点= 高阶函数+函数嵌套+闭包 在遵循下面两个原则的前提下为被装饰者新功能 必须遵循的原则: 1)一定不能修改源代码 2)不能修改调用方式 语法糖(格式符号):@ @timer #@timer就等同于cal=timer(cal) def cal(array): res=0 for i in array: res+=i return res cal(range(10)) #…
python 基础篇 11 函数进阶----装饰器
11. 前⽅⾼能-装饰器初识本节主要内容:1. 函数名的运⽤, 第⼀类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ⼆. 闭包什么是闭包? 闭包就是内层函数, 对外层函数(非全局)的变量的引⽤. 叫闭包 可以使用_clesure_检测函数是否是闭包 返回cell则是闭包,返回None则不是 闭包的好处: 由它我们可以引出闭包的好处. 由于我们在外界可以访问内部函数. 那这个时候内部函数访问的时间和时机就不⼀定了, 因为在外部,…
python初始装饰器
python装饰器: 一,函数名的运用. 函数名是一个变量,但他是一个特殊的变量与括号配合可以执⾏行行函数的变量 1.函数名的内存地址 def func(): print("呵呵") print(func) 结果: <function func at 0x1101e4ea0> 2. 函数名可以赋值给其他变量 def func(): print("呵呵") print(func) a = func # 把函数当成一个变量赋值给另一个变量 a() # 函数调…
python-装饰器初识,闭包
函数名的运⽤, 第⼀类对象 ⼀. 函数名的运⽤. 函数名是⼀个变量, 但它是⼀个特殊的变量, 与括号配合可以执⾏函数的变量 1. 函数名的内存地址 def func(): print("呵呵") print(func) 结果: <function func at 0x1101e4ea0> 2. 函数名可以赋值给其他变量 def func(): print("呵呵") print(func) a = func # 把函数当成⼀个变量赋值给另⼀个变量 a()…
递归,装饰器,python常用内置方法
**递归** def calc(n): print(n) if int(n / 2) == 0: 条件判断 return n return calc(int(n/2)) calc(10) 结果为10,5,2,1 下一个是实现过程 def calc(n): print(n) …
装饰器的初识,基于bootstrap的前端开发
1装饰器的初识 概念:不改变函数原来的调用方式,动态地给函数添加功能 开放封闭的原则:1>对添加的新功能是开放的,32>不要在元代码进行修改(封闭) 1.1>函数的定义:对代码块和功能的定义和封装 def func(): print("哈哈哈") func() 1.2>函数可以当做变量一样来赋值 1.3>函数可以向普通变量一样放到容器(列表,字典,元组)中 def func(): print("鞠婧祎是我前女友") def foo():…
初识Python装饰器
python中,一切皆对象.做为面向对象开发中非常重要的一个环节,函数有着无可替代的作用. 函数可以作为对象赋值给一个变量,可以作为元素添加到集合对象中,可以作为参数值传递给其它函数,还可以当做函数的返回值被引用. 在现代软件开发之中,有一个非常重要的原则,那就是****开放封闭原则****. 所谓****开放封闭原则****就是软件实体应该****对扩展开放,而对修改封闭****. 开放封闭原则是所有面向对象原则的核心. 软件设计本身所追求的目标就是封装变化,降低耦合,而开放封闭原则正是对这一…
day11(python)装饰器
def wrapper(f):#1 def inner(*args,**kwargs):#3 ret = f(*args,**kwargs)#5 return ret#8 return inner#4 @wrapper #装饰器名字 #func=wrapper(func),此时func实际上是inner的内存地址 def func(*args,**kwargs):#2 #被装饰函数 print(args,kwargs)#6 print(kwargs)#7 func(1,5,6,a=2,b=1)…
Day11 Python基础之装饰器(高级函数)(九)
在python中,装饰器.生成器和迭代器是特别重要的高级函数 https://www.cnblogs.com/yuanchenqi/articles/5830025.html 装饰器 1.如果说装饰器是取经路上的大妖怪,想要干掉它就必须拿到三样法宝 法宝一:作用域(LEGB) 法宝二:高阶函数:(把函数名看作变量,可以作为传输参数,也可以作为返回值) (在python的世界里,函数和我们之前的[1,2,3],'abc',8等一样都是对象, 而且函数是最高级的对象(对象是类的实例化,可以调用相…
day11 python之函数装饰器
一,什么是装饰器? 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等场景. 二,装饰器的形成过程. 现在我有一个需求,我想让你测试这个函数的执行时间,在不改变这个函数代码的情况下: import time def func1(): print('in func1') def timer(func): start = time.time() func(…
day11 闭包函数和装饰器
1.函数不是新知识点 主要是学习函数的用法 在面向对象编程中,一切皆对象,函数也不例外 具体的表现 1.函数可以引用 2.函数可以作为函数的参数 3.函数可以作为函数的返回值 4.可以被存储到容器类型中 def func1(): pass a=func() def func(func): func() func2(func1) def func3(): return func1 def fun5(): print('func5 run') li2 = [func5] li2[2]() 2.函数的…
函数名、闭包、装饰器 day11
1, 函数名的内存地址,print(func) 2, 函数名可以赋值给其他变量 3, 函数名可以当做容器类的元素 4, 函数名可以当做函数的参数. 5, 函数名可以当做函数的返回值. 学名:第一对象 函数名的内存地址:def func(): print(555) print(func) # <function func at 0x00000000003E1E18> 结果: def func1(): print(111) f = func1 f() # func() def func(): pr…
day11有参装饰器,无参装饰器
今日内容 1.有参装饰器 2.无参装饰器 什么是装饰器? 用来为被装饰对象添加新功能的工具. 注:装饰器可以是任意可调用对象,被装饰对象也可以是任意可调用对象. 为何要用装饰器? 开放封闭原则:对修改封闭,对扩展开放 装饰器的实现需要遵循两大原则: 1.不修改被装饰对象的源代码 2.不修改装饰器对象的调用方式 有参装饰器模板: def outter(func): def warpper(*args,**kwargs): res=func(*args,**kwargs) return res re…
初识面向对象-封装、property装饰器、staticmathod(静态的方法)、classmethod(类方法) (五)
封装 # class Room:# def __init__(self,name,length,width):# self.__name = name# self.__length = length# self.__width = width# def get_name(self):#C++的编码习惯,一个get和一个set# return self.__name# def set_name(self,newName):# if type(newName) is str and newName.…
python笔记3 闭包 装饰器 迭代器 生成器 内置函数 初识递归 列表推导式 字典推导式
闭包 1, 闭包是嵌套在函数中的 2, 闭包是内层函数对外层函数的变量(非全局变量)的引用(改变) 3,闭包需要将其作为一个对象返回,而且必须逐层返回,直至最外层函数的返回值 闭包例子: def a1(): name = 'wk' def a2(): print(name) return a2 闭包函数的作用 非闭包函数:随着函数的结束临时空间关闭 def func1(s): n = 1 n += s print(n) func1(3) func1(3) #每次函数结束临时空间关闭 func1(…
初识python: 装饰器
定义: 本质是函数,功能是"装饰"其它函数,即为其他函数添加附加功能原则: 1.不能修改被装饰函数的源代码: 2.不能修改被装饰函数的调用方式实现装饰器知识储备: 1.函数即"变量": 2.高阶函数: 3.嵌套函数.实例1:初始版 # 定义装饰器函数 import time def qt_fun(func): def gj_func(*args,**kwargs): #关键点,定义不定实参传入值个数*args,形参个数**kwargs start_time=time…
Python基础—装饰器(Day11)
装饰器 1.装饰器是在不改变原函数的执行的情况下为原函数增额外的功能. 简单版装饰器import time def func1(): print('执行速度') def timmer(f): start_time=time.time() f() time.sleep(0.3) end_time=time.time() print('此函数的执行效率%s'% (end_time-start_time)) f1=func1 func1=timmer func1(f1) import time def…