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实现的一只从百度开始不断搜索的小爬虫
Aug 13 Python
举例区分Python中的浅复制与深复制
Jul 02 Python
将Python代码打包为jar软件的简单方法
Aug 04 Python
Python基于TCP实现会聊天的小机器人功能示例
Apr 09 Python
基于tensorflow加载部分层的方法
Jul 26 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
500行python代码实现飞机大战
Apr 24 Python
JupyterNotebook 输出窗口的显示效果调整实现
Sep 22 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目录导航文件代码
2006/10/09 PHP
新手学PHP之数据库操作详解及乱码解决!
2007/01/02 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
JS求平均值的小例子
2013/11/29 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
python中偏函数partial用法实例分析
2015/07/08 Python
Django实现学员管理系统
2019/02/26 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
python super()函数的基本使用
2020/09/10 Python
Python实现简单猜数字游戏
2021/02/03 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
学期个人自我总结
2015/02/13 职场文书
小学数学教学反思范文
2016/02/16 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书