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 28 Python
Python 中 Meta Classes详解
Feb 13 Python
Python实现两款计算器功能示例
Dec 19 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
python 数字类型和字符串类型的相互转换实例
Jul 17 Python
pygame游戏之旅 添加icon和bgm音效的方法
Nov 21 Python
Python获取网段内ping通IP的方法
Jan 31 Python
Python参数类型以及常见的坑详解
Jul 08 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
Python 根据数据模板创建shapefile的实现
Nov 26 Python
在pycharm中无法import所安装的库解决方案
May 31 Python
Elasticsearch 聚合查询和排序
Apr 19 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
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
discuz目录文件资料汇总
2014/12/30 PHP
基于php实现的验证码小程序
2016/12/13 PHP
Nginx实现反向代理
2017/09/20 Servers
laravel 框架配置404等异常页面
2019/01/07 PHP
php链式操作的实现方式分析
2019/08/12 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
python使用psutil模块获取系统状态
2016/08/27 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
六行python代码的爱心曲线详解
2019/05/17 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
学习Python爬虫的几点建议
2020/08/05 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
html5启动原生APP总结
2020/07/03 HTML / CSS
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
关键字final的用法
2013/10/02 面试题
通用求职信范文模板分享
2013/12/27 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
拔河比赛口号
2014/06/10 职场文书
公司领导班子对照材料
2014/08/18 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
Mysql数据库group by原理详解
2022/07/07 MySQL