python练习题之一个记录函数运行的装饰器


1.写一个装饰器,查看函数执行的时间

import datetimeimport timedef jishi(fun):   def warper():      start_time = datetime.datetime.now()      fun()      end_time = datetime.datetime.now()      haoshi = (end_time-start_time).total_seconds()      print("函数运行耗时{}".format(haoshi))   return warper()

@jishidef yunsuan():   time.sleep(2)   for x in range(100):      print(x)yunsuan()

总结:总体思想就是 用函数运行后的当地时间减去函数运行前的当地时间。关于装饰器为什么要用双层函数嵌套,是因为装饰器的本意是原函数的代码和调用方式,所以要求warper连同原函数和增加的功能封装在一起

一起返回。

原文地址:https://www.cnblogs.com/chaojiyingxiong/p/9247284.html

时间: 2024-10-12 20:35:13

python练习题之一个记录函数运行的装饰器的相关文章

【Python基础】高阶函数+函数嵌套+闭包 ==装饰器

高阶函数+函数嵌套+闭包 == 装饰器 一 什么是装饰器 二 装饰器需要遵循的原则 三 实现装饰器知识储备 四 高阶函数 五 函数嵌套 六 闭包 七 无参装饰器 八 装饰器应用示例 九 超时装饰器 参考: https://www.cnblogs.com/linhaifeng/articles/6140395.html https://www.cnblogs.com/haiyan123/p/8387769.html 原文地址:https://www.cnblogs.com/XJT2018/p/11

第四天 内置函数2 随机码 装饰器 迭代器、生成器 递归 冒泡算法 JSON

关于函数的return li = [11,22,33,44] def f1(arg): arg.append(55) li = f1(li) print(li) 因为li = f1(li) 实际赋值的是f1的return,那么在这种情况下函数f1并未定义return,所以默认返回None 因此li的值应该是none 如果是 li = [11,22,33,44] def f1(arg): arg.append(55) f1(li) print(li) 因为函数传递的参数实际是参数的引用,因此在函数

python中“生成器”、“迭代器”、“闭包”、“装饰器”的深入理解

一.生成器 1.什么是生成器? 在python中,一边循环一边计算的机制,称为生成器:generator. 2.生成器有什么优点? 1.节约内存.python在使用生成器时对延迟操作提供了支持.所谓延迟,是指在需要的时候才产生结果,而不是立即产生结果.这样在需要的时候才去调用结果,而不是将结果提前存储起来要节约内存.比如用列表的形式存放较大数据将会占用不少内存.这是生成器的主要好处.比如大数据中,使用生成器来调取数据结果而不是列表来处理数据,因为这样可以节约内存. 2.迭代到下一次的调用时,所使

函数嵌套与装饰器

*应用场景,位置参数中代表将多个参数存入元祖,**将关键字参数传入字典 位置参数: 位置形参:必须被传值,一一对应 位置实参:按从左到右的顺序与形参一一对应 关键字参数:按照key=value形式指名道姓的为形参传值,可以完全不按照顺序 1.关键字实参必须在位置参数的后面 2.可以混用位置实参与关键字实参,但不能为同一个形参重复传值 默认参数: 形参有默认值 可变长参数 形参:*args,**kwargs将多余的参数分别封装成元祖与字典 实参:将args kwargs分别打散 什么是命名关键字参

python学习笔记-Day05-第一部分(再谈装饰器)(递归)

今天又花了多半天来学习装X利器---装饰器, 来详细的讲讲装饰器的用法 还是要说一下,学装饰器之前要先搞清楚什么是函数.装饰器就是对函数进行一个包装,打个比喻来说就是: 假设有一个箱子A,在箱子A的外面又套了一个大箱子,外面的大箱子还起名叫A,以后在找里面的小箱子A的时候,就先去找外面的大箱子A,打开外面的大箱子A之后 在打开内部的小箱子A,这个就是装饰器. 装饰器也是一个函数,至少两层 def outter(func):               #定义函数 outter,参数为一个函数的函

Django视图函数函数之视图装饰器

FBV模式装饰器: 普通函数的装饰器(语法糖@) views.py 1 from django.shortcuts import render 2 3 def wrapper(f): 4 def inner(*args,**kwargs): 5 print("before") 6 ret=f(*args,**kwargs) 7 print("after") 8 return ret 9 return inner 10 11 @wrapper 12 def index

Python - 函数进阶之装饰器

本章内容 高阶函数 装饰器 前言 接着上一篇函数进行整理.. 一.高阶函数 高阶函数就是将一个函数以参数的形式传入另一个函数 1 def main_func(func): 2 # 定义一个主函数,并设置一个参数func 3 4 return func 5 # 返回func的值,因为我需要传入一个函数,即返回func的返回值 6 7 def func(): 8 # 定义一个函数作为参数传入主函数 9 10 return "Lyon" 11 # 返回 "Lyon" 给f

python函数三 (装饰器)

一.函数名(学名:第一类对象) 函数名本质上就是函数的内存地址.通俗点就是特殊的普通变量 def func(): print(111) func() print(func) # 结果: # 111 # <function func at 0x00000150713F6048> 1.可以被引用(即可以赋值给其他变量) def func(): print('in func') f = func f() # 结果: # in func 2.可以被当作容器类型的元素 def func(): print

5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器

一.什么是装饰器? 实际上装饰器就是个函数,这个函数可以为其他函数提供附加的功能. 装饰器在给其他函数添加功能时,不会修改原函数的源代码,不会修改原函数的调用方式. 高阶函数+函数嵌套+闭包 = 装饰器 1.1什么是高阶函数? 1.1.1函数接收的参数,包涵一个函数名. 1.1.2 函数的返回值是一个函数名. 其实这两个条件都很好满足,下面就是一个高阶函数的例子. def test1(): print "hamasaki ayumi" def test2(func): return t