前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用函数式编程思想理解 Python

利用函数式编程思想理解 Python

作者头像
杨丝儿
发布2022-03-01 13:14:52
2360
发布2022-03-01 13:14:52
举报
文章被收录于专栏:杨丝儿的小站杨丝儿的小站

关键词:函数式编程,python底层理解,可靠性,效率。

print 是一个python的函数,print的 作用 是在终端中打印,print的返回值为None。

这里我们可以换个理解的方式:

print 是一个python的函数,print的返回值是None,print的 副作用 是在终端中打印。

上面两句的区别仅仅是语序的不同以及一个词的差异。但是这两句背后的思想大相径庭。

第一句强调的是作用,是一个函数能够做什么事情,我们在记忆的时候往往是忽略返回值None的。第二句强调的是函数本身的意义,即输入输出,在理解记忆的时候需要完善print的函数定义,其他print的功能都是副作用,也就是在运行函数的过程中,不属于函数输出范畴的影响。

python 中的每一个函数,每一个变量都可以使用这样的思想进行解释。

接下来我们看这样一段代码:

代码语言:javascript
复制
a = 100
b = a

正常的解释是:

我们给变量 a 赋值 100,然后将 变量 a 的值 赋给变量 b。

函数试思想是:

我们给变量 a 赋值 100,然后我们 调用 a 得到返回值 100,最后将 100 赋值给变量 b。

将 a 不仅仅是当成一个拥有值的变量。我们认为 a 是一个拥有类似于函数功能的对象,拥有自己的输入和输出,然后和其他的代码首尾相连组成数据的管道

副作用的概念除了 print 的终端打印,根据副作用的定义:函数除去期望输出的其他的影响,还有一种可以使用副作用去理解的情景:浅层拷贝。

在浅层拷贝的时候,CPU只会寻址第一层的列表,内部列表则不会寻址,所以拷贝后的列表和原列表共用一组内部列表的数据。当我们想要修改其中一个列表的内部列表的时候,另一个列表会跟着变化。这里另一个列表的变化不是我们修改列表这个函数的期望输出,所以是一种副作用。

函数编程的思想最大的意义在于提升程序的鲁棒性。通过构造输入输出管道的设计思路和识别并管理副作用的技术,我们可以减少编程过程中代码出现错误/bug 的可能性,提高编程效率的同时提高代码的可靠性。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档