day11-15,装饰器
day11
1、装饰器
import time
# print(time.time()) # 点数前边是从1970年到现在过了多少秒
# time.sleep(10) # 让程序执行到这里停一会儿 #
# # print(time.time()) # 点数前边是从1970年到现在过了多少秒
# # time.sleep(10) # 让程序执行到这里停一会儿
#
#
# # 增加功能
# def timer(f): # 装饰器函数
# def inner():
# start = time.time()
# ret = f() # 被装饰的函数
# end = time.time()
# print(end - start)
# return ret
# return inner
# @timer # 语法糖,不用下边的那个调用函数
# def func():
# time.sleep(1)
# print('大家哈')
# return '新年好'
# 调用函数
# func = timer(func) # print(func()) # 原则:开放封闭原则
# 开放:对扩展是开放的
# 封闭:对修改是封闭的
装饰器的基础使用
2、带参数的函数装饰器
# 装饰带参数函数装饰器
# def timer(f): # 装饰器函数
# def inner(*args, **kwargs):
# start = time.time()
# ret = f(*args, **kwargs) # 被装饰的函数
# end = time.time()
# print(end - start)
# return ret
#
# return inner
#
#
# @timer # 语法糖,不用下边的那个调用函数
# def func(a, b):
# time.sleep(1)
# print('大家哈', a, b)
# return '新年好'
#
#
# @timer
# def funcl(a):
# time.sleep(1, )
# print('大家哈', a)
# return '新年好'
#
#
# func('你好', b=8)
# funcl('hello')
带参数的装饰器(*args,**args)
3、装饰器的固定模式
# 固定模式 def wrapper(f): # 装饰器函数,fhi被装饰的函数
def inner(*args, **kwargs):
'''在被装饰函数之前要做的事'''
ret = f(*args, **kwargs) # f是被装饰的函数
'''在被装饰函数之后要做的事'''
return ret
return inner @wrapper # 语法糖,不用下边的那个调用函数
def func(a, b):
time.sleep(1)
print('大家哈', a, b)
return '新年好'
装饰器的固定模式
day12
1、
day11-15,装饰器的更多相关文章
- day11(python)装饰器
def wrapper(f):#1 def inner(*args,**kwargs):#3 ret = f(*args,**kwargs)#5 return ret#8 return inner#4 ...
- python --- 15 装饰器
装饰器 一.原则,目的 开闭原则: 对功能的扩展开放,对代码的修改是封闭的(不可修改的) 目的:在目标函数前或后插入一段新的代码,不改变源代码 二.装饰器的通用语法 三.多个装饰器修饰同一个函数 ...
- day 15 装饰器
装饰器(重点,难点) 开闭原则: 对功能的扩展开放 对代码的修改是封闭的 在目标函数前和后插入一段新的代码.不改变原来的代码 通用装饰器写法: # 存在的 ...
- day11 - 15(装饰器、生成器、迭代器、内置函数、推导式)
day11:装饰器(装饰器形成.装饰器作用.@语法糖.原则.固定模式) 装饰器形成:最简单的.有返回值的.有一个参数的.万能参数 函数起的作用:装饰器用于在已经完成的函数前后增加功能 语法糖:使代码变 ...
- day11 装饰器---函数的使用方法
这个是一个难点,以后面试会经常出现的,要搞懂! 装饰器升级版,进阶内容1: def outer(flag): def wrapper(func): def inner(*args,**kwargs): ...
- day11:装饰器
1,引子,计算函数的运行时间: import time def func(): time.sleep(0.01) # 为了计算运行时间差的时候有值 print("func") de ...
- day11.装饰器初识
1.开放封闭原则 原则: 开放封闭原则,对扩展是开放的,对修改是封闭的. 封版概念:当写好一个功能以后,就不可以再修改此函数,避免下面一系列的调用产生错误. 因此产生了装饰器 2.装饰器形成过程 我们 ...
- 15 python 初学(闭包,函数装饰器)
这一部分很重要,一定要透彻理解.可参考大神博客: http://www.cnblogs.com/yuanchenqi/articles/5830025.html 闭包: 如果在一个内部函数里,对在外 ...
- Day11 Python基础之装饰器(高级函数)(九)
在python中,装饰器.生成器和迭代器是特别重要的高级函数 https://www.cnblogs.com/yuanchenqi/articles/5830025.html 装饰器 1.如果说装 ...
- day11 python之函数装饰器
一,什么是装饰器? 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事 ...
随机推荐
- SpringBoot 整合使用dubbo
这里主要是按照teaey作者的spring-boot-starter-dubbo框架进行一些变化的使用 依赖包: <dependency> <groupId>com.aliba ...
- 【做题】arc078_f-Mole and Abandoned Mine——状压dp
题意:给出一个\(n\)个结点的联通无向图,每条边都有边权.令删去一条边的费用为这条边的边权.求最小的费用以删去某些边使得结点\(1\)至结点\(n\)有且只有一条路径. \(n \leq 15\) ...
- (转)开源项目miaosha(下)
石墨文档:https://shimo.im/docs/2XlwliBQAYsKCHbq/ (二期)20.开源秒杀项目miaosha解读(下) [课程20]jmeter.xmind81.5KB [课程2 ...
- 如何自己烧制全文RSS(打造自己RSS源)
烧制RSS源 到Feed43注册一个账号,虽说不注册也能用,但是为了方便修改自己烧制的RSS,最好还是注册一个账号来管理 到主页点击Create new feed 输入网址点击reload 可以看到请 ...
- 题解——洛谷P2781 传教(线段树)
可以说是数据结构学傻了的典型案例了 昨天跳到这题上 然后思考了一下 噫!好!线段树裸题 然后打完板子,发现\( n \le 10^9 \) 显然线段树直接做不太行 然后这题又只有普及的难度 然后我就 ...
- Kafka、RabbitMQ、RocketMQ等消息中间件的对比
Kafka 是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目.Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输.0 ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
本文为博主原创: 以下为在程序运行过程中报的错误, org.springframework.dao.CannotAcquireLockException: ### Error updating dat ...
- 解决win7的outlook打不开的问题
outlook打不开,一直显示正在处理 解决方法: 1. 按住Ctrl,双击打开组件,会提示是否进入安全模式, 进入安全模式 2. 单击Outlook中的文件-选项-加载项- 左下角的“COM加载项“ ...
- 51nod 1351 吃点心(贪心)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1351 题意: 思路: 要么先选low值大的,要么先选high值大的,分两 ...
- Java方法中捕获多个异常的处理机制
/** * @author wangyunhan * @throws Exception */ public static void main(String[] argßs) throws Excep ...