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监控网卡流量并使用graphite绘图的示例
Apr 27 Python
Python selenium如何设置等待时间
Sep 15 Python
python 链接和操作 memcache方法
Mar 04 Python
Python利用递归和walk()遍历目录文件的方法示例
Jul 14 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 Python
python 除法保留两位小数点的方法
Jul 16 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
python导入坐标点的具体操作
May 10 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
使用python远程操作linux过程解析
Dec 04 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
Python功能键的读取方法
2015/05/28 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
简单谈谈python基本数据类型
2018/09/26 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
python 代码运行时间获取方式详解
2020/09/18 Python
内科护士实习自我鉴定
2013/10/17 职场文书
优秀的自荐信要注意哪些
2014/01/03 职场文书
银行办理业务介绍信
2014/01/18 职场文书
临床护士自荐信
2014/01/31 职场文书
就业自我评价
2014/02/04 职场文书
致垒球运动员加油稿
2014/02/16 职场文书
2014年国庆节寄语
2014/09/19 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
停水通知
2015/04/16 职场文书
员工离职通知函
2015/04/25 职场文书
在职证明书模板
2015/06/15 职场文书
医院保洁员管理制度
2015/08/05 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python