Python学习笔记(十)偏函数

1)int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换:

>>> int('12345', base=8)

5349

即该数是一个八进制数,将其转换成为一个十进制的数

def int2(x, base=2):

    return int(x, base)


>>> int2('1000000')

64

2)简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

>>> import functools

>>> int2 = functools.partial(int, base=2)

注意到上面的新的int2函数,仅仅是把base参数重新设定默认值为2,但也可以在函数调用时传入其他值,即在函数int2()中间传入base=10也是可行的

3)创建偏函数时,实际上可以接收函数对象、*args和**kw这3个参数

3.1)当使用(int,base=2)时,固定了int()函数的关键字参数base 相当于

kw = { 'base': 2 }

int('10010', **kw)

3.2)当使用(max,10)时,10作为*args的一部分自动加入左边进行比较,相当于

args = (10, 5, 6, 7)

max(*args)


4)当函数的参数个数太多时,建立一个新函数固定住原函数的部分参数进行简化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确...
    齐天大圣李圣杰阅读 5,419评论 0 2
  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 5,506评论 0 6
  • 基础1.r''表示''内部的字符串默认不转义2.'''...'''表示多行内容3. 布尔值:True、False(...
    neo已经被使用阅读 5,702评论 0 5
  • Python进阶框架 希望大家喜欢,点赞哦首先感谢廖雪峰老师对于该课程的讲解 一、函数式编程 1.1 函数式编程简...
    Gaolex阅读 10,869评论 6 53
  • 看到网上的例子: 结果: 也就是说,args接收的数据类型是单个的字符,*kwargs接收的数据类型是有名字有特指...
    阿莫米德阅读 2,795评论 0 1