cache模块

cache方法可以自动在缓存中或取已经计算过的数据
实例展示

from functools import cache
import timea = time.time()#未执行函数前的时间戳# 自动在缓存中或取已经计算的相同结果
@cache
def fun1(n):# 下面是一个求阶乘的公式return n* fun1(n-1) if n else 1o= fun1(400)
b=time.time()#执行了一次函数的时间戳
print(o)
d=time.time()#计算输出print()函数的时间戳
p=fun1(399)
print(p)
c=time.time()#计算再次执行函数之后的时间戳
print("{h}计算fun1(400)用时".format(h=b-a))
print("{f}计算输出用时".format(f=d-b))
print("{g}计算再次计算fun1(399)用时".format(g=c-b))

没有使用cache
结论:重复计算的里面添加上

#使用format格式化 {:f}为保留小数点后6位  {:.8f}则为保留小数点后8位
print("{h:f}计算fun1(400)用时".format(h=b-a))
print("{f:.8f}计算输出用时".format(f=d-b))
print("{g:f}计算再次计算fun1(399)用时".format(g=c-b))

lru_cache模块

maxsize:指定最大缓存数目,(maxsize=None)未没有限制
typed:(typed=true)将不同类型的参数分别缓存如f(3)与f(3.0)将分别存储,
(typed=False)则为否
cache_parameters:返回一个子类型,包含它所在装饰器参数
cache_clear():清空缓存
lru_cache:里面当缓存满了就会自动清理掉末尾的数据,清理的目标是很被少访问的数据(根据历史访问时间记录)
理解cachelru_cache的精简版

from functools import lru_cache# 自动在缓存中或取已经计算的相同结果
@lru_cache(maxsize=100,typed=False)
def fun1(n):# 下面是一个求阶乘的公式return n* fun1(n-1) if n else 1

warps

先说明函数的基础使用方法

def f():'''1:查看函数使用方法本段文字为本函数的使用方法,在命令行中可以执行查看使用命令:help(函数名字)[help(f)],2:查看函数名字命令:f.__name__print(f.__name__)'''"linux电脑好用"

左图

调用ccc.__name__输出ccc()函数的名字为: bbb
print(ccc.__doc__)输出为:bbb函数的使用方法
help(ccc) 得到的为

Help on function bbb in module __main__:bbb()bbb函数的使用方法

右图
调用ccc.__name__输出ccc()函数的名字为: ccc
print(ccc.__doc__)输出为:ccc函数的使用方法
help(ccc) 得到的为

Help on function bbb in module __main__:ccc()ccc函数的使用方法

调用wraps

from functools import wrapsdef aaa(kk):@wraps(kk)def bbb():'''bbb函数的使用方法'''return kk()return bbb@aaa
def ccc():'''ccc函数方法的使用说明'''eee="一段文字或者方法"print(eee)print(ccc.__name__)
print(ccc.__doc__)#或者help(ccc)


目的是解决

   bbb.__name__ =kk.__name__bbb.__doc__ =kk.__doc__

python functools模块方法相关推荐

  1. python functools模块(主要是为函数式编程而设计,用于增强函数功能,主要为可调用对象(callable objects)定义高阶函数或操作)

    参考文章1:Python的functools模块 参考文章2:尝试修改LabelImg,将以对顶角画框改成以对角线相交点画框

  2. python安装模块方法_Python安装模块的几种方法

    一.方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行: python setup.py ...

  3. python import模块方法

     python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径. 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: `-- ...

  4. python日志模块方法_python日志模块logbook使用方法

    python自带了日志模块logging,可以用来记录程序运行过程中的日志信息.同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是比较的多,因此 ...

  5. python安装模块方法

    安装pip 1. 下载:https://bootstrap.pypa.io/get-pip.py 2. 执行命令: python get-pip.py 安装beautifulsoup4 方法一: pi ...

  6. python导入模块方法_Python导入模块的3种方法(非常详细)

    许多初学者经常遇到这样的问题: 自定义Python模板后,在其他文件中使用带有import(或从... import)语句导入文件时,Python解释器还会出现以下错误: ModuleNotFound ...

  7. python 倒入模块方法

    python导入模块总共有三种方式:(小编只知道这三种) 接下来详细介绍三种方式的使用方法和区别 方法一.直接引用 1 2 3 4 #引用,这样引用会把sys模块里面的所有方法全都引入进来,在某种意义 ...

  8. python os模块方法_python os模块方法总结

    在python中os是一个非常常用的模块,下面是对os中方法的总结(实验为Mac环境) 1 .  os.name  :输出字符串指示使用的平台,windows是'nt', linux/unix/mac ...

  9. python安装模块方法_python安装模块方法汇总

    方法一: 原文地址: http://blog.csdn.net/cighao/article/details/47860041 在 windows 系统下,只需要输入命令 pip install re ...

最新文章

  1. 2019年的人工智能,那些吹过的牛能实现吗?
  2. 文字如何实现完美UI?文本排版设计告诉你
  3. node封装mysql模块
  4. 阿里云OSS搭建移动应用直传服务的.Net C#示例
  5. oracle exp 二进制,Oracle备份之exp自动逻辑备份(二)
  6. 210307共享内存的读写
  7. jzoj3056-数字【数位dp,统计,容斥】
  8. javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Service层
  9. 管理节点连接不上sql节点_质量成本管理:成本控制、成本分析、费用使用流程与节点说明...
  10. STM32-----找个搬砖的搬数据
  11. 低代码平台真的能拯救程序员的996吗?
  12. Nodejs下的ES6兼容性与性能分析
  13. python列表框_Python列表框
  14. Oracle In Memory最佳实践(附PPT和视频回放)
  15. Nginx学习日记第五篇 -- upstream及fastcgi
  16. css3实现loading动画效果
  17. 监测系统的cpu,物理内存,磁盘的使用
  18. Docker Toolbox下配置国内镜像源-阿里云加速器
  19. java解析魔兽争霸3录像_Java解析魔兽争霸3录像W3G文件(五):Action和APM计算
  20. 学习笔记(10):程序员的数学:微积分-常用导数(二):最常用到的技巧

热门文章

  1. Asp.Net MVC 自定义登录过滤器
  2. Docker默认存储路径修改
  3. 学习NSURLSession(1)
  4. MVC学习二:基础语法
  5. HTML img 标签的 border 属性
  6. 【转载】linux下如何使用sftp命令
  7. Django--QuerySet--基础查询
  8. 运用Links方法安装插件
  9. iframe之间操作记录
  10. 构造函数和析构函数的作用,面向对象的三大特征