设为首页收藏官网网盘国家资源立人课堂 今天是: 2022-08-03    美好的一天,从现在开始投稿

立人创客乐享社区

 找回密码
 立即注册
立人创客乐享社区 首页 游戏编程 查看内容

python 模块制作(中)

2020-5-3 19:46| 发布者: 信息中心| 查看: 39| 评论: 1|原作者: 刘子豪

摘要: 这是一篇关于python的文章 我们将继续学习写一个模块,这是最后关于介绍函数的文章。 事不宜迟,我们现在开始。 1.内嵌函数 简单来说“内嵌函数”就是在函数里定义了函数。先来看看一个例子吧: 虽然这看起来并没 ...
这是一篇关于python的文章

我们将继续学习写一个模块,这是最后关于介绍函数的文章。
事不宜迟,我们现在开始。

1.内嵌函数
简单来说“内嵌函数”就是在函数里定义了函数。先来看看一个例子吧:

虽然这看起来并没有用,但只要合理运用,它可以发挥不小的作用呢。
还有就是作用域:在函数内定义的函数是不可以在在外部调用的。

2.闭包
闭包是各种语言函数结构的一种。而python的语法结构请参见下面这个图。

概念:如果在一个内部函数里(就是X)对外部作用域(不是全局哟)的变量进行引用(x就是被引用的变量,x在外部作用域X里,但不在全局里),则这个内部函数就是闭包。
注意:同内嵌函数一样,你是不能在外部调用它的

这个报错与之前讲全局变量是一样的,因为python外认为部函数x是局部变量时,外部变量x就被‘屏蔽’了,所以根本找不到x的值。
但有两个解决方法:
(1)用容器(字符串、列表、元祖...)存放是一个好方法。因为容器并不是存放在栈里,所以容器就不会被‘屏蔽’。
(2)用上python3特有的关键字nonlocal就可以了。

3.lambda表达式
lambda是一个关键字用来创建匿名函数

特点:
(1)用python写一些脚本时,用lambda定义函数可以省去定义过程。这使得代码变得异常精简
(2)对于那些只有调用一两次的函数,可以用lambda解决。而且起名字也不在变得那么麻烦了
(3)再有就是可读性,一般函数要到开头寻找,而lambda可以省去这样的步奏

4.关于函数的两个BIF
4.1.filter()
filter是一个筛选器。它有两个值第一个值不是必要的,该值是函数名。第二值是可迭代值。由这个可迭代值的每一个值作为函数的参数,由返回参数为Ture时作为filter的返回值。(在不设置情况下,可迭代值中为True的值将为返回的值)当然filter返回的值必须由list\tuple\...转换为可视的值。

4.2.map()
和filter一样只不过返回的序列是函数直接返回的值

5.递归
递归就是函数自身调用自身的行为。(如果有兴趣,我可以单独做一期)

那么感谢大家的阅读,我会立马赶下一期的。


中_6.png
中_5.png
中_4.png
中_3.png
中_2.png
中_1.png

路过

雷人

握手

鲜花

鸡蛋

相关阅读

发表评论

最新评论

信息中心 2020-5-3 19:44
能够微课程化最好,小而精细的慢慢教

查看全部评论(1)

Loading...
展开
返回顶部