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 Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
Django中的“惰性翻译”方法的相关使用
Jul 27 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
Apr 11 Python
python中defaultdict的用法详解
Jun 07 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 Python
对Python 内建函数和保留字详解
Oct 15 Python
Python中新式类与经典类的区别详析
Jul 10 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
Python Numpy库常见用法入门教程
Jan 16 Python
python中Mako库实例用法
Dec 31 Python
pyqt5打包成exe可执行文件的方法
May 14 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中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
javascript 进度条 实现代码
2009/07/30 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
python 以16进制打印输出的方法
2018/07/09 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
魅力教师事迹材料
2014/01/10 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
小学母亲节活动总结
2015/02/10 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
个人道歉信大全
2019/04/11 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
Python Pandas 删除列操作
2022/03/16 Python
使用Redis实现点赞取消点赞的详细代码
2022/03/20 Redis