【Python函数式编程】——偏函数(Partial function)

简介:  Python的 functools 模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。

Python函数式编程——偏函数Partial function

在这里插入图片描述

  Python的 functools 模块提供了很多有用的功能,其中一个就是偏函数( Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。
  例如: int() 函数可以把字符串转换为整数,当仅传入数字字符串时, int() 函数默认按十进制转换
>>> int('123') 
123
  但 int() 函数还提供额外的 base 参数,默认值为 10 。如果传入 base 参数,就可以做进制的转换。
>>> int('12345', base=8) 
5349 
>>> int('12345', 16) 
74565
  如果要转换大量的二进制字符串,每次都传入 int(x, base=2) 非常麻烦,于是,我们想到,可以定义一个 int2() 的函数,默认把 base=2 传进去:

代码:

# 定一个转换义函数 
def int_bin(num, base=2):
    return int(num, base=2)


print(int_bin('1001'))  # 9
  把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单,继续优化, functools.partial 就是帮助我们创建一个偏函数的,不需要我们自己定义 int_bin() 函数,可以直接使用下面的代码创 建一个新的函数。
# -*- coding: utf-8 -*-
# @File  : 偏函数partial.py
# @author: Flyme awei 
# @email : Flymeawei@163.com
# @Time  : 2022/8/21 22:18

from functools import partial


int2 = partial(int, base=2)
print(int2('1001'))  # 9
  理清了 functools.partial 的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

  注意到上面的新的 int2 函数,仅仅是把 base 参数重新设定默认值为 2 ,但也可以在函数调用时传入其他值实际上固定了int()函数的关键字参数 base


相关文章
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
345 17
|
人工智能 Python
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
364 11
Python高级编程与实战:深入理解函数式编程与元编程
本文深入介绍Python的函数式编程和元编程。函数式编程强调纯函数与不可变数据,涵盖`map`、`filter`、`reduce`及`lambda`的使用;元编程则涉及装饰器、元类和动态属性等内容。通过实战项目如日志记录器和配置管理器,帮助读者掌握这些高级技术,编写更灵活高效的Python程序。
Python函数式编程-Filter
Python函数式编程-Filter
365 64
|
Linux Python
【Azure Function】Python Function部署到Azure后报错No module named '_cffi_backend'
ERROR: Error: No module named '_cffi_backend', Cannot find module. Please check the requirements.txt file for the missing module.
467 2
|
存储 算法 数据处理
Python函数式编程
【10月更文挑战第12天】函数式编程是一种强大的编程范式,它可以帮助我们编写更加简洁、易读、可维护和高效的代码。虽然 Python 不是一种纯粹的函数式编程语言,但它提供了许多支持函数式编程的特性和功能。通过深入了解和掌握函数式编程的概念和技巧,我们可以在 Python 编程中更好地应用函数式编程的理念,提高我们的编程水平和代码质量。
347 2
|
Java C++ Python
Python Function详解!
本文详细介绍了Python函数的概念及其重要性。函数是一组执行特定任务的代码,通过`def`关键字定义,能显著提升代码的可读性和重用性。Python函数分为内置函数和用户自定义函数两大类,支持多种参数类型,包括默认参数、关键字参数、位置参数及可变长度参数。文章通过多个实例展示了如何定义和调用函数,解释了匿名函数、递归函数以及文档字符串的使用方法。掌握Python函数有助于更好地组织和优化代码结构。
672 4
|
C# Python
Python Tricks : Function Argument Unpacking
Python Tricks : Function Argument Unpacking
272 1
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
266 0
|
Python
【Azure Function】发布 Python Function 到 Azure 成功,但是无法显示Function列表
【Azure Function】发布 Python Function 到 Azure 成功,但是无法显示Function列表
215 0

推荐镜像

更多