专栏首页python3python中的偏函数

python中的偏函数

偏函数:

当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。比如,int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换,但int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做 N 进制的转换:

>>> int('12345', base=8)
5349
>>> int('12345', 16)
74565

假设要转换大量的二进制字符串,每次都传入int(x, base=2)非常麻烦,于是,我们想到,可以自定义一个int2()的函数,默认把base=2传进去:

def int2(x, base=2):
    return int(x, base)

但是有更简单的方法吗?functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2:

>>> import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('1000000')
64
>>> int2('1010101')
85

functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python的partial()用法说明

    在functools模块中有一个工具partial(),可以用来"冻结"一个函数的参数,并返回"冻结"参数后的新函数。

    py3study
  • Python 调用cobbler API

    目前BootAPI 已经不再推荐在cobbler 2.0中使用,官方推荐使用使用XMLRPC 

    py3study
  • python-函数-参数

      实参:实际参数,调用函数时传给函数的参数,可以是常量、变量、表达式、函数,传给形参

    py3study
  • MyBatis 与 Spring 整合

    MyBatis—Spring 项目 目前大部分的 Java 互联网项目,都是用 Spring MVC + Spring + MyBatis 搭建平台的。 使用 ...

    我没有三颗心脏
  • Git删除暂存区或版本库中的文件

    Git有三大区(工作区、暂存区、版本库)以及几个状态(untracked、unstaged、uncommited),下面只是简述下Git的大概工作流程,详细的可...

    程序员小明
  • Selenium2+python自动化71-多个浏览器之间的切换

    前言 有时候一些业务的功能涉及到多个系统,需要在web系统1打开造一些数据,然后用到某些参数是动态生成的,需要调用web系统2里面的参数。 举个简单例子:在做...

    上海-悠悠
  • 解锁不可见索引新特性,处理ORA-01555故障

    何国亮 云和恩墨交付部技术顾问,获得 Oracle 11g OCM 认证。有超过 6 年超大型数据库专业服务经验,曾为通信运营商、银行、保险、政府、制造业...

    数据和云
  • 【python】os 模块使用笔记

    Python内置的os模块可以调用操作系统提供的接口函数,对文件或目录进行操作(实际上操作系统是不允许应用程序直接访问和操作文件和目录的,读写文件就是请求操作系...

    zenRRan
  • 实战课堂:系统CPU高消耗的SQL筛选和最佳索引优化

    在一次客户系统性能优化项目中,经过第一阶段的优化之后,数据库的DB Time和物理读都明显降低,但是我们发现CPU并没有明显降低。

    数据和云
  • 开发者必备Linux命令

    macrozheng

扫码关注云+社区

领取腾讯云代金券