Functional Programming Modules
functools
对于函数和可调用对象的执行操作
cache 缓存函数结果
@functools.lru_cache(maxsize=128) # 一般用lru_cache自动释放缓存. cache的话更快,但是不会自动释放
def factorial(n):
return n * factorial(n-1) if n else 1
partial 把新增的参数放入原有参数来变成新的函数
原来的函数 log_e(10), 默认用math.e当底数, 返回2.30.
但是我是程序员, 经常希望以2为底数
import math
import functools
def log_e(n, base=math.e):
return math.log(n, base)
log_2 = functools.partial(log_e, base=2)
print(log_2(4)) # 2.0
文件操作
基础
file = open(<filename>, 'w')
file.write('text')
file.close()
模式
w 写入模式
b 读取模式
a 添加模式, 无论seek到哪,write只能够添加数据
r+ 可读可写。write以后需要flush,不然之后read会导致指针位置改变,影响结果
方法
read(n) # 读取n个字符或者字节
seek(offset, from_what) # offset偏移数量,from_wath 0代表开始,1代表当前,2代表末尾
Process Parameters
File Descriptor Operations
Process Management
time
localtime
mktime 没啥用, 把时间变成时间戳, 不如直接用datetime
>>> time.mktime((2022, 1, 2, 3, 4, 5, 6, 0, 0))
1641063845.0
>>> datetime.datetime(2022, 1, 2, 3, 4, 5).timestamp
1641063845.0