编程基础:functools.partial和字典到变量的映射方法

1. functools.partial 固定函数的一些形参值

from functools import partial
RECORD_SIZE = 32

with open('./data/files.data', 'rb') as f:
    records = iter(partial(f.read, RECORD_SIZE), b'')
    for r in records:
        print(r)
b'1 2 3 4 5 6 7 8 9 10 11 12 13 14'
b' 15 16 17 18 19 20 21 22 23 24 2'
b'5 26 27 28 29 30 31'

records 对象是一个可迭代对象,它会不断的产生固定大小的数据块,直到文件末尾。 要注意的是如果总记录大小不是块大小的整数倍的话,最后一个返回元素的字节数会比期望值少。

本例中目的是读取固定长度数据,并一行一行迭代读取。

functools.partial 用来创建一个每次被调用时从文件中读取固定数目字节的可调用对象。 标记值 b’’ 就是当到达文件结尾时的返回值。

def add(a, b)->int:
    return a + b
add_100 = partial(add, a = 100)
add_100(b = 10) # -> 110
110

add的例子展示了partial可以固定函数add中的任意形参的值

2. 给函数内的函数传字典参数

2.1 以 a=10形式输入形参

class Add
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值