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
  • asp之家 网络编程 m.aspxhome.com