Python中使用partial改变方法默认参数实例


Posted in Python onApril 28, 2015

Python 标准库中 functools库中有很多对方法很有有操作的封装,partial Objects就是其中之一,他是对方法参数默认值的修改。
下面就看下简单的应用测试。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

#python2.7x

#partial.py

#authror: orangleliu
'''

functools 中Partial可以用来改变一个方法默认参数

1 改变原有默认值参数的默认值

2 给原来没有默认值的参数增加默认值

'''

def foo(a,b=0) :

    '''

    int add'

    '''

    print a + b
#user default argument

foo(1)
#change default argument once

foo(1,1)
#change function's default argument, and you can use the function with new argument

import functools
foo1 = functools.partial(foo, b=5)  #change "b" default argument

foo1(1)
foo2 = functools.partial(foo, a=10) #give "a" default argument

foo2()
'''

foo2 is a partial object,it only has three read-only attributes

i will list them

'''

print foo2.func

print foo2.args

print foo2.keywords

print dir(foo2)
##默认情况下partial对象是没有 __name__ __doc__ 属性,使用update_wrapper 从原始方法中添加属性到partial 对象中

print foo2.__doc__

'''

执行结果:

partial(func, *args, **keywords) - new function with partial application

    of the given arguments and keywords.

'''
functools.update_wrapper(foo2, foo)

print foo2.__doc__

'''

修改为foo的文档信息了

'''
Python 相关文章推荐
python实现的登录和操作开心网脚本分享
Jul 09 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
python编写分类决策树的代码
Dec 21 Python
Python3生成手写体数字方法
Jan 30 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
详解Python 函数如何重载?
Apr 23 Python
python的一些加密方法及python 加密模块
Jul 11 Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 Python
Python urlencode和unquote函数使用实例解析
Mar 31 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
Python import模块的缓存问题解决方案
Jun 02 Python
调试Python程序代码的几种方法总结
Apr 28 #Python
解析Python中的异常处理
Apr 28 #Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 #Python
Python EOL while scanning string literal问题解决方法
Sep 18 #Python
python中尾递归用法实例详解
Apr 28 #Python
在Python中使用元类的教程
Apr 28 #Python
python删除列表中重复记录的方法
Apr 28 #Python
You might like
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
js判断节假日实例代码
2017/12/27 Javascript
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
python实现simhash算法实例
2014/04/25 Python
一则python3的简单爬虫代码
2014/05/26 Python
Python和GO语言实现的消息摘要算法示例
2015/03/10 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
python 消费 kafka 数据教程
2019/12/21 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
运动会跳远广播稿
2014/02/04 职场文书
日化店促销方案
2014/03/26 职场文书
专题组织生活会方案
2014/06/15 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
Redis Stream类型的使用详解
2021/11/11 Redis
Elasticsearch 基本查询和组合查询
2022/04/19 Python