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里大整数相乘相关技巧指南
Sep 12 Python
python list排序的两种方法及实例讲解
Mar 20 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
pygame游戏之旅 游戏中添加显示文字
Nov 20 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
Python如何读取文件中图片格式
Jan 13 Python
pytorch中图像的数据格式实例
Feb 11 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
python中Ansible模块的Playbook的具体使用
May 28 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
python中pycryto实现数据加密
Apr 29 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代码(抓取网页中的邮箱地址)
2012/07/17 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
python接口自动化框架实战
2020/12/23 Python
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
个人简历自我评价
2014/02/02 职场文书
学生手册评语
2014/05/05 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript