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

立人创客乐享社区

 找回密码
 立即注册
成都市金牛实验中学校

立人小喇叭+ 发布

信息中心 立人创客游戏化学习三乐法新课程开始啦!欢迎交流分享
04-04 10:04
立人创客社: 祝愿世界太平!地球早日康复!
01-07 11:43
jnschool 请同学们严格遵守国家网络安全规定,文明上网!
01-07 11:41
查看: 3455|回复: 1

python 模块制作(中)

[复制链接] TA的其它主题

13

主题

6

好友

2626

积分

超级版主

Rank: 8Rank: 8

积分
2626
威望
492
立人币
794
贡献
377
大金牛币
29
乐创奖
2
乐享奖
366
乐课奖
0
立人证书
0
QQ
发表于 2020-5-3 19:33:29 | 显示全部楼层 |阅读模式 |
<

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是一篇关于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
楼主热帖
立人小创客
<

338

主题

1107

好友

1万

积分

社区管理员

创客导师

Rank: 9Rank: 9Rank: 9

积分
18055
威望
2974
立人币
8163
贡献
1229
大金牛币
444
乐创奖
39
乐享奖
12
乐课奖
6
立人证书
6

突出创客优秀版主荣誉管理创客元老

QQ
发表于 2020-5-3 19:44:53 | 显示全部楼层
能够微课程化最好,小而精细的慢慢教
立人创客、创客立人
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

展开
Loading...
快速回复 返回顶部 返回列表