python的functools.partial用法解释
2015-12-22 22:52
330 查看
在使用bottle的jinja2_template过程中碰到了一个自定义filter的问题,其中bottle关于jinja2_template的定义是这样的:
jinja2_template = functools.partial(template, template_adapter=Jinja2Template)
在.NET中class也是有partial这个概念的,所以从字面理解,jinja2_template应该是template和后边template_adapter=Jinja2Template这个参数之和的结果。官方的解释为:
Return a new partial object which when called will behave like func called with the positional arguments args and keyword arguments keywords.
官方给的例子:
不管你懂没懂,反正我是没懂。最后Google了下,在 这里找到一个简单易懂的例子。摘录如下:
函数的partial应用
典型的,函数在执行时,要带上所有必要的参数进行调用。然后,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用。
所以bottle中使用jinja2_template即等同于template(你传入参数, template_adapter=Jinja2Template)。稍后的文章会再说明如何自定义filters
jinja2_template = functools.partial(template, template_adapter=Jinja2Template)
在.NET中class也是有partial这个概念的,所以从字面理解,jinja2_template应该是template和后边template_adapter=Jinja2Template这个参数之和的结果。官方的解释为:
Return a new partial object which when called will behave like func called with the positional arguments args and keyword arguments keywords.
官方给的例子:
from functools import partialbasetwo = partial(int, base=2)basetwo.__doc__ = 'Convert base 2 string to an int.'basetwo('10010')18
不管你懂没懂,反正我是没懂。最后Google了下,在 这里找到一个简单易懂的例子。摘录如下:
import functoolsdef add(a, b): return a + badd(4, 2)6plus3 = functools.partial(add, 3)plus5 = functools.partial(add, 5)plus3(4)7plus3(7)10plus5(10)15
函数的partial应用
典型的,函数在执行时,要带上所有必要的参数进行调用。然后,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用。
所以bottle中使用jinja2_template即等同于template(你传入参数, template_adapter=Jinja2Template)。稍后的文章会再说明如何自定义filters
相关文章推荐
- python自学笔记20151222 IO编程
- python多线程实现售票
- python学习之核心数据类型
- 国内的pythoner强烈建议使用豆瓣的pypi源
- 一些简单的Python测试题(个人参考答案)
- python爬虫+scrapy安装
- python中reduce函数的用法
- Python写爬虫——抓取网页并解析HTML
- python descriptor
- [Pythong标准库]array——固定类型数据序列
- [Python标准库]collections——容器数据类型[二]
- 脚本输入输出重定向
- 如何查看Python是32位还是64位
- None Python
- Python 提取Twitter转发推文的元素(比方username)
- Python socket编程
- secondpostinpython
- Python Wing IDE5.1.8-1 KeyGen
- firstpostinpython
- Python基础06 循环