Python实现partial改变方法默认参数
作者:shichen2014 时间:2022-10-30 20:23:33
在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
0
投稿
猜你喜欢
sqlserver数据库最大Id冲突问题解决方法之一
2024-01-28 01:48:06
Centos8(最小化安装)全新安装Python3.8+pip的方法教程
2022-11-09 06:00:27
Django之form组件自动校验数据实现
2023-09-25 16:43:33
利用python为运维人员写一个监控脚本
2021-01-19 16:12:37
sqlserver主键自增的实现示例
2024-01-16 22:41:10
使用opencv相关函数确定图片中的直线问题
2021-01-11 11:30:14
Python中xml和json格式相互转换操作示例
2023-04-26 18:02:39
go-cache的基本使用场景示例解析
2023-08-06 00:52:02
Bootstrap复选框和单选按钮美化插件(推荐)
2023-07-02 05:24:53
rollup打包vue组件并发布到npm的方法
2024-05-22 10:43:32
python 类的继承 实例方法.静态方法.类方法的代码解析
2021-12-19 14:19:34
注册表单的规则——读《Patterns for Sign Up &Ramp Up》
2008-07-17 12:51:00
15款最佳jQuery LightBox插件
2010-09-25 12:41:00
python+os根据文件名自动生成文本
2022-06-12 00:50:48
python去除空格,tab制表符和\\n换行符的小技巧分享
2022-05-12 14:20:39
PHP json格式和js json格式 js跨域调用实现代码
2023-11-22 05:20:18
优雅地使用loading(推荐)
2024-04-30 08:42:01
python函数的作用域及关键字详解
2021-11-26 04:38:30
MySql like模糊查询通配符使用详细介绍
2024-01-24 12:25:03
Python基于动态规划算法计算单词距离
2021-09-18 11:18:16