python functools模块方法
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
:里面当缓存满了就会自动清理掉末尾的数据,清理的目标是很被少访问的数据(根据历史访问时间记录)
理解cache
为lru_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模块方法相关推荐
- python functools模块(主要是为函数式编程而设计,用于增强函数功能,主要为可调用对象(callable objects)定义高阶函数或操作)
参考文章1:Python的functools模块 参考文章2:尝试修改LabelImg,将以对顶角画框改成以对角线相交点画框
- python安装模块方法_Python安装模块的几种方法
一.方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行: python setup.py ...
- python import模块方法
python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径. 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: `-- ...
- python日志模块方法_python日志模块logbook使用方法
python自带了日志模块logging,可以用来记录程序运行过程中的日志信息.同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是比较的多,因此 ...
- python安装模块方法
安装pip 1. 下载:https://bootstrap.pypa.io/get-pip.py 2. 执行命令: python get-pip.py 安装beautifulsoup4 方法一: pi ...
- python导入模块方法_Python导入模块的3种方法(非常详细)
许多初学者经常遇到这样的问题: 自定义Python模板后,在其他文件中使用带有import(或从... import)语句导入文件时,Python解释器还会出现以下错误: ModuleNotFound ...
- python 倒入模块方法
python导入模块总共有三种方式:(小编只知道这三种) 接下来详细介绍三种方式的使用方法和区别 方法一.直接引用 1 2 3 4 #引用,这样引用会把sys模块里面的所有方法全都引入进来,在某种意义 ...
- python os模块方法_python os模块方法总结
在python中os是一个非常常用的模块,下面是对os中方法的总结(实验为Mac环境) 1 . os.name :输出字符串指示使用的平台,windows是'nt', linux/unix/mac ...
- python安装模块方法_python安装模块方法汇总
方法一: 原文地址: http://blog.csdn.net/cighao/article/details/47860041 在 windows 系统下,只需要输入命令 pip install re ...
最新文章
- 2019年的人工智能,那些吹过的牛能实现吗?
- 文字如何实现完美UI?文本排版设计告诉你
- node封装mysql模块
- 阿里云OSS搭建移动应用直传服务的.Net C#示例
- oracle exp 二进制,Oracle备份之exp自动逻辑备份(二)
- 210307共享内存的读写
- jzoj3056-数字【数位dp,统计,容斥】
- javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Service层
- 管理节点连接不上sql节点_质量成本管理:成本控制、成本分析、费用使用流程与节点说明...
- STM32-----找个搬砖的搬数据
- 低代码平台真的能拯救程序员的996吗?
- Nodejs下的ES6兼容性与性能分析
- python列表框_Python列表框
- Oracle In Memory最佳实践(附PPT和视频回放)
- Nginx学习日记第五篇 -- upstream及fastcgi
- css3实现loading动画效果
- 监测系统的cpu,物理内存,磁盘的使用
- Docker Toolbox下配置国内镜像源-阿里云加速器
- java解析魔兽争霸3录像_Java解析魔兽争霸3录像W3G文件(五):Action和APM计算
- 学习笔记(10):程序员的数学:微积分-常用导数(二):最常用到的技巧