python模块 - functools模块
http://blog.csdn.net/pipisorry/article/details/26863141
functools模块介绍
functools用于高阶函数:指那些作用于函数或者返回其他函数的函数。通常情况下,只要是可以被当做函数调用的对象就是这个模块的目标。(The functools module is for higher-order functions: functions that act on or return other functions. In general, any callable object can be treated as a function for the purposes of this module.)
偏函数-functools.partial()
functools.
partial
(func[,*args][, **keywords])¶
partial是针对函数起作用的,并且是部分的;而装饰器是对函数进行包装,算是对函数的整体进行处理(其实是对输入和输出)。部分的话其实只有对参数进行部分处理了。
函数的大致意思就是提前给函数绑定几个参数。即functools.partial
的作用是把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
使用示例
示例1:
有这样的函数:get_useragent(request) 用来获取用户浏览器的ua信息,但是这个函数又不是在主体函数(执行页面渲染的函数)get时调用的,只在模板中的一个filter中调用的(可以理解是在模板渲染时调用的),而filter在执行的时候是不能添加参数的,要怎么处理。
def get(self, request, *args, **kwargs):
context = {
'ua_filter': functools.partial(get_useragent, **{"request": request})
}
self.render('index.html', context)
/* 对应的大致页面代码如下 */
user-agent: {% ua_filter %}
示例2:
[解决闭包的后期绑定问题]
示例3:
在tensorflow.map_fn对data中每条数据处理时,arg_value是个值,data是数据流,这时使用偏函数解决其它参数如arg问题。
def logit2labels(data, arg):
...
在tensorflow.map_fn(partial(python_func, arg=arg_value), data)
示例3.1:
def cal(x, arg1, args2):
try:
x[old_col] = args1...args2...x[old_col]
except:
print("x[old_col]:", x[old_col])
df.loc[:, new_col] = df.apply(functools.partial(cal, args1=args1, args2=args2), axis=1)
示例4:
def say(name, age):
print(name, age)
func = functools.partial(say, age=5)
func('the5fire')
# 结果是: the5fire 5
from:http://blog.csdn.net/pipisorry/article/details/26863141
ref:python中functools宝库下的partial
python模块 - functools模块相关推荐
- Python的functools模块
Python的functools模块 functools 模块可以说主要是为函数式编程而设计,用于增强函数功能. functools模块用以为可调用对象(callable objects)定义高阶函数 ...
- Python中functools模块函数解析
Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数.换言之,就是能使用该模块对可调用对象进行处理. functools模块函数概览 functool ...
- python 之 functools模块
functools模块用于高阶函数:作用于或返回其他函数的函数.一般而言,任何可调用对象都可以作为本模块用途的函数来处理. 官方文档已经有了详尽的介绍,这里就不在复述,详情请见:官方文档 .这里主要介 ...
- Python之functools模块使用方法
functools reduce方法: reduce方法,顾名思义就是减少 reduce(function,sequence[,initial]=>value) 可迭代对 ...
- python functools模块(主要是为函数式编程而设计,用于增强函数功能,主要为可调用对象(callable objects)定义高阶函数或操作)
参考文章1:Python的functools模块 参考文章2:尝试修改LabelImg,将以对顶角画框改成以对角线相交点画框
- python装饰器及functools模块
python装饰器及functools模块 本文是笔者学习python装饰器以及functools模块的笔记. 在开始学习之前,先在此列举出python函数的一些特性: 一切皆对象:python函数也 ...
- Python 标准库 functools 模块详解
functools 官方文档:https://docs.python.org/zh-cn/3/library/functools.html Python 标准模块 --- functools:http ...
- Python库functools详解
functools模块是Python的标准库的一部分,它是为高阶函数而实现的.高阶函数是作用于或返回另一个函数或多个函数的函数.一般来说,对这个模块而言,任何可调用的对象都可以作为一个函数来处理. f ...
- python函数进阶小结_Python-进阶-functools模块小结
文档 地址 functools.partial 作用: functools.partial 通过包装手法,允许我们 "重新定义" 函数签名 用一些默认参数包装一个可调用对象,返回结 ...
- python中的functools模块
functools模块可以作用于所有的可以被调用的对象,包括函数 定义了__call__方法的类等 1 functools.cmp_to_key(func) 将比较函数(接受两个参数,通过比较两个参数 ...
最新文章
- python使用openweathermap API获取全世界主要城市天气信息
- javascript中构造函数的返回值问题和new对象的过程
- 调用接口登录禅道_第三方应用配置免密登录禅道
- 简单介绍:什么是Python?Python好学吗?
- LinkedHashSet集合
- 工作五年再回首java---开篇
- [svc]容器网络学习索引及网络监控
- 数据库索引的概念和分类
- 国美零售带货直播 重构本地零售数字化生产力
- 微信任意用户密码修改漏洞分析
- ep服务器修改时间,BIOS揭秘 手把手教你设置Nehalem平台
- 万年历—Java计算感恩节是哪天?感恩节是哪一天?2017年感恩节是哪一天?
- 【转】 HMC与VIOS对新LPAR提供存储与网络虚拟化的支持
- java中计算一段时间内白天的时间和夜晚的时间
- MapReduce解决乘用车辆和商用车辆的销售数据分析
- 戴维宁(也叫戴维南)定理是什么?如何证明?_戴维宁定理等效电路求解_戴维宁定理习题
- 网站被挂木马病毒了,怎么办?
- 深度报告:国产6大传统数据库
- 【转载】三种证明欧拉恒等式的方法(3 methods of proving Euler's Formula )
- 英译汉在线翻译器如何实现英文语音翻译中文