浅谈python函数式编程
Posted 工控上位机学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈python函数式编程相关的知识,希望对你有一定的参考价值。
工控课堂【www.gkket.com】工程师必备网站
电气工控自动化-超万元免费资料
【什么是函数式编程】
使用函数写代码,不就是函数式编程了嘛!!
NO~NO~NO~
这还要从程序设计语言的分类说起,大多数编程语言可以归为以下几类:
面向过程程序设计语言:程序是一系列指令,命令计算机如何处理输入。代表性的语言有C、Pascal、和Unix shells。
描述性程序设计语言: 程序是你需要解决问题的描述,程序会去执行最有效的解决方法。我们最熟悉的描述性程序设计语言是SQL语言。
面向对象程序设计语言:程序操作一些对象的集合,对象支持内部状态和方法,通过某种方式能够改变。代表性的语言有C++、Java等。
函数式程序设计语言:函数式编程把问题分解为一个函数的集合,理想的情况下,函数只获得输入,产生输出。对于给定的输入,没有任何影响输出的内部状态。比较著名的函数式程序设计语言有ML和Haskell。
所以,函数式编程是一种编程范式,就像面向对象编程思想一样,是一系列想法,不是一套严苛的规定。Python语言支持多范式编程,即支持面向过程、面向对象和函数式编程。Python函数式编程风格的程序通常不那么避免I/O和任何的资源分配,Python经常是提供一个函数式编程的接口,而在内部则使用非函数式编程的特性。例如,一个函数的实现仍然会使用局部变量,但不会修改全局变量和产生其他方面的影响。
【函数式编程的风格】
一般支持函数式编程的语言通常具有如下特征:
匿名函数
闭包
内置不可变数据结构
递归
【Python函数式编程的风格】
Python为支持函数式编程,提供了很多有用的工具,下面就一一介绍。
迭代器
一个迭代器代表一个数据集,一次返回一个数据集的一个元素。__iter__方法返回一个迭代器,所谓的迭代器就是具有next方法(这个方法在调用时不需要任何参数)的对象。在调用next方法时,迭代器会返回它的下一个值。如果next方法被调用,但迭代器没有值可以返回,就会引发一个StopIteration异常。
内建的iter()
函数能够接受任意种对象,并尝试返回一个迭代器,如果对象不支持迭代,引发TypeError
异常。
2.列表推导式和生成器推导式
在迭代器上通常执行的两个操作有:1)对每个元素进行操作2)对元素集合子集进行满足某些条件的过滤,比如,对给定的一个字符串列表,你想去掉首尾的空格字符,或者,提取子字符串。
列表推导式和生成器推导式都能用简单的语句完成上述功能。你可以使用如下语句去掉字符串中的空格字符。
我们也可以通过添加if语句来选择特定的元素。
生成器推导式和列表推导式的工作方式类似,只不过返回的不是列表而是生成器(并且不会立刻进行循环),所返回的生成器像下面这样一步一步的进行运算。
更奇妙在于,生成器推导式可以在当前的圆括号内直接使用,例如,在函数调用中,不用增加另外一个圆括号,换句话说,可以像下面这样编写代码。
转发是最大的鼓励!谢谢您的支持!
重要通知
想加入工控上位机学习技术交流群
请添加班长为好友
并备注:地区-行业-姓名昵称获取进群资格。
工控上位机学习 专业专注分享 ——————————————————————
▣ 来源:pythonld,侵删!
▣ 声明:本文素材系网络收集,工控上位机学习编辑整理。文中所用视频、图片、文字版权归原作者所有。但因转载众多,无法确认真正原始作者,故仅标明转载来源。如涉及作品版权问题,烦请及时联系17621634088(微信同号),我们将即刻确认版权并按国家相关规定支付稿酬!
她们都关注了,你还等什么?
以上是关于浅谈python函数式编程的主要内容,如果未能解决你的问题,请参考以下文章