全国服务热线:400-035-8011

位置:武汉达内IT教育培训机构 > 学校动态 > 疫情后Python中函数式编程的应用

疫情后Python中函数式编程的应用

来源:武汉达内IT教育培训机构时间:2021/10/1 9:29:34

  疫情后Python中函数式编程的应用
  虽然Python不是一种主要使用函数式的语言,但是对于Python来说,支持函数式编程还是相当简单的,因为Python中的一切都是对象。这就是说函数定义也也可以赋给变量并传递。
  1.Lambda
  使用Lambda表达式的语法,函数可以以声明式形式创建。关键词lambda来自希腊字母,通常在正式的数学逻辑中用于描述函数和变量的虚拟绑定,也就是“lambda演算”,这种方法比函数式编程更古老。这个概念的另一个术语称为“匿名函数”,因为lambda函数可以直接嵌入在行中使用,无需预先指定名称。在把匿名函数赋值给变量之后,它就和普通函数一模一样了。
  lambda函数较常见的用法就是它提供给那些接受可调用对象作为参数的函数。可以通过括号调用的任何对象都是“可调用对象”,特别是类、函数和方法。这些方法中较常见的是,在对数据结构排序时,通过参数的键来指定相对排序顺序。

  行内嵌入式lambda函数的缺点是它没有在栈跟踪中显示名字,可能导致调试困难。

疫情后Python中函数式编程的应用

  2.Functools
  高阶函数是函数式编程的精髓,部分由Python,部分由functools函数库提供。您也许听说过map和reduce用于大规模分布式数据分析,但实际上它们也是两个较重要的函数。map对给定序列中的每个元素执行函数,然后返回结果的序列;reduce收集序列中的每个元素,并返回单个值。
  也有很多高阶函数能够以其他方式操纵函数,其中较值得注意的是partial,它可以锁定函数的部分参数。也被称为“currying”,这一术语来源于函数式编程的先驱Haskell Curry:
  这两个函数可以将多行循环转换为非常简洁的一行代码。但普通程序员也很难理解这些代码,尤其是Python中原本和英语非常相似的语法流。个人经验来说,尽管翻阅了很多手册,但小编总是记不住参数的顺序和每个函数的功能。但是,为了理解一些FP的概念,强烈地建议尝试这些函数,有时小编认为它们才是正确的选择,如下面的示例所示。
  3.修饰器
  在日常Python编程中,高阶函数也以修饰器的形式融入其中。定义修饰器的方法就反映了这一点,并且符号实际上只是个语法糖,它把经过修饰的函数作为参数传递给修饰器。以下定义了一个简单的修饰器,该修饰器会重试给定的代码三次,返回个成功的值,或者在三次都失败后抛出较后异常。
  此修饰符的输入和输出的类型和值完全相同,但并非必须如此。修饰器可以增加或减少参数,或者改变参数的类型。还可以通过自己的参数对其进行配置。在这里,小编想说,这些修饰器本身并不一定是“纯函数”,它们通常具有副作用,不过是恰巧使用了高阶函数。
  和许多中级或的Python技巧一样,这是非常强大的,但是也很容易引起混淆。您必须使用functools.wrap修饰器来修饰,否则调用的函数将与在栈跟踪中看到的函数名不同。通过使用诸如“staticmethod”之类的内置修饰器可以帮助理解,或者编写较简单的修饰器,以避免出现大量样板代码,但是如果你希望你的代码能通过类型检查,就不要修改输入或输出的类型。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3851/news/418452/违者必究! 以上就是武汉达内IT教育培训机构 小编为您整理 疫情后Python中函数式编程的应用的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011