• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 如何在Python函数执行前后增加额外的行为

如何在Python函数执行前后增加额外的行为

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了额外行为,set函数python,python 自定义函数,python中def函数,python3函数手册等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

首先来看一个小程序,这个是计量所花费时间的程序,以下是以往的解决示例

from functools import wraps, partial
from time import time

def timing(func=None, frequencies=1):
 if func is None:
  # print("+None")
  return partial(timing, frequencies=frequencies)
 # else:
  # print("-None")

 @wraps(func)
 def _wrapper(*args, **kwargs):
  start_time = time()
  for t in range(frequencies):
   result = func(*args, **kwargs)
  end_time = time()
  print('运行花费时间:{:.6f}s。'.format(end_time-start_time))
  return result

 return _wrapper


@timing
def run():
 l = []
 for i in range(5000000):
  l.extend([i])
 return len(l)
</div>

运行如下:

In [4]: run()
运行花费时间:2.383398s。
Out[4]: 5000000
</div>

(喜欢刨根问底的可以去掉注释,并思考预计会有什么样的输出)。

今天无意间看到了Python的上下文管理器(Context Manager),发现也非常不错,其实这跟with语句是息息相关的,竟然以前一直未在意。

from time import time

def run2():
 l = []
 for i in range(5000000):
  l.extend([i])
 return len(l)

class ElapsedTime():
 def __enter__(self):
  self.start_time = time()
  return self

 def __exit__(self, exception_type, exception_value, traceback):
  self.end_time = time()
  print('运行花费时间:{:.6f}s。'.format(self.end_time - self.start_time))

with ElapsedTime():
 run2()
</div>

总结

初略看了一点官方文档,上下文管理还是有点多内容的。Python发展到现在,其实不简单了。说简单,只是你自己不够与时俱进,掌握的都是老式三板斧而已。所以,知识需要不断更新,才能弥补自己的盲点,以上就是本文的全部内容,希望能大家的学习或者工作带来一定的帮助。

</div>

您可能想查找下面的文章:

  • 如何在Python函数执行前后增加额外的行为

相关文章

  • 在Mac OS上搭建Python的开发环境
  • Ubuntu下python版本管理
  • python实现文本文件合并
  • Python通过DOM和SAX方式解析XML的应用实例分享
  • Python循环语句之break与continue的用法
  • python重试装饰器示例
  • Python基础入门之seed()方法的使用
  • Python使用面向对象方式创建线程实现12306售票系统
  • 详解python 发送邮件实例代码
  • python常规方法实现数组的全排列

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python批量提交沙箱问题实例
    • Python中__init__.py文件的作用详解
    • Python re模块介绍
    • python爬取本站电子书信息并入库的实现代码
    • python client使用http post 到server端的代码
    • python批量同步web服务器代码核心程序
    • 教你用Type Hint提高Python程序开发效率
    • Python选课系统开发程序
    • Python使用QQ邮箱发送Email的方法实例
    • Python实现登录人人网并抓取新鲜事的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有