python进阶一(函数式编程)【2-9 python中的偏函数】
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python进阶一(函数式编程)【2-9 python中的偏函数】,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1256字,纯文字阅读大概需要2分钟。
内容图文
![python进阶一(函数式编程)【2-9 python中的偏函数】](/upload/InfoBanner/zyjiaocheng/702/0fda58d9ae1f445fbe2362758e739024.jpg)
python中偏函数
当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。
比如,int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换:
>>> int('12345') 12345
但int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做 N 进制的转换:
1 >>> int('12345', base=8) 2 5349 3 >>> int('12345', 16) 4 74565
假设要转换大量的二进制字符串,每次都传入int(x, base=2)非常麻烦,于是,我们想到,可以定义一个int2()的函数,默认把base=2传进去:
1 def int2(x, base=2): 2 return int(x, base)
这样,我们转换二进制就非常方便了:
>>> int2('1000000') 64 >>> int2('1010101') 85
functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2:
>>> import functools >>> int2 = functools.partial(int, base=2) >>> int2('1000000') 64 >>> int2('1010101') 85
所以,functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了。
任务
在第7节中,我们在sorted这个高阶函数中传入自定义排序函数就可以实现忽略大小写排序。请用functools.partial把这个复杂调用变成一个简单的函数:
1 import functools 2 sorted_ignore_case = functools.partial(sorted, cmp=lambda s1, s2: cmp(s1.upper(), s2.upper())) 3 print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
内容总结
以上是互联网集市为您收集整理的python进阶一(函数式编程)【2-9 python中的偏函数】全部内容,希望文章能够帮你解决python进阶一(函数式编程)【2-9 python中的偏函数】所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。