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爬虫的基本写法
Jan 08 Python
Python中的数据对象持久化存储模块pickle的使用示例
Mar 03 Python
Python应用库大全总结
May 30 Python
python实现爬取百度图片的方法示例
Jul 06 Python
python flask几分钟实现web服务的例子
Jul 26 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
python如何将两个txt文件内容合并
Oct 18 Python
Python读取表格类型文件代码实例
Feb 17 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
Python dict的常用方法示例代码
Jun 23 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动态生成函数示例
2014/03/21 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
python回调函数用法实例分析
2015/05/09 Python
Python 专题一 函数的基础知识
2017/03/16 Python
理论讲解python多进程并发编程
2018/02/09 Python
对Python中的@classmethod用法详解
2018/04/21 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
详解Python中的测试工具
2019/06/09 Python
python之拟合的实现
2019/07/19 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
Python坐标线性插值应用实现
2019/11/13 Python
flask实现验证码并验证功能
2019/12/05 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
会计求职自荐信
2014/06/20 职场文书
经营目标责任书
2015/05/08 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
Java 在生活中的 10 大应用
2021/11/02 Java/Android