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中将阿拉伯数字转换成中文的实现代码
May 19 Python
浅谈Python的异常处理
Jun 19 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
python实现简单加密解密机制
Mar 19 Python
python 字典有序并写入json文件过程解析
Sep 30 Python
Python全栈之列表数据类型详解
Oct 01 Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 Python
Python API自动化框架总结
Nov 12 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
Python根据字符串调用函数过程解析
Nov 05 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
配置最新的PHP加MYSQL服务器
2006/10/09 PHP
php的access操作类
2008/04/09 PHP
php中Smarty模板初体验
2011/08/08 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
ThinkPHP3.1新特性之多层MVC的支持
2014/06/19 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
浅析JavaScript动画
2015/06/10 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
2019/08/16 Javascript
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
自动化专业个人求职信范文
2013/11/29 职场文书
保护环境倡议书100字
2014/05/19 职场文书
教师党员个人自我评价
2015/03/04 职场文书
考博导师推荐信范文
2015/03/27 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL