ad

《Python学习笔记 从入门到实战》_更了解Python的途径之一_6.6 lambda来创建和使用匿名函数

网友投稿 130 2023-11-07

【摘要】 本书摘自《Python学习笔记 从入门到实战》一书中第6章,第6节,由张学建编著。

6.6 lambda来创建和使用匿名函数

《Python学习笔记 从入门到实战》_更了解Python的途径之一_6.6 lambda来创建和使用匿名函数

6.6.1 匿名函数介绍

在Python 程序中,可以将匿名函数赋给一个变量供调用,它是Python 中一类比较特殊的 声明函数的方式,lambda 来源于LISP 语言,其语法格式如下所示:

lambda params;expr

其中参数 “params” 相当于声明函数时的参数列表中用逗号分隔的参数,参数 “expr” 函数要返回值的表达式,而表达式中不能包含其他语句,也可以返回元组(要用括号),并 且还允许在表达式中调用其他函数。

在 Python 程序中使用 lambda 创建匿名函数时,应该注意如下所示的四点。

● lambda只是一个表达式,比 def简单很多。

● lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda 表达式中封装有 限的逻辑进去。

● lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的 参数。

● 虽然lambda 函数看起来只能写一行,却不等同于C 或 C++ 的内联函数,后者的目的 是调用小函数时不占用栈内存从而增加运行效率。

6.6.2 使用匿名函数

例如在下面的实例中,演示了使用lambda 创建匿名函数的过程。

实例6-16:使用lambda 创建匿名函数 sum) 并输出恋爱前后的幸福指数值 源码路径:下载包\daima\6\6-16

6.7 函数和模块开发

6.7.1 导入整个模块文件

在 Python 程序中,导入模块的方法有多种,下面将首先讲解导入整个模块的方法。要 想让函数变为是可导入的,需要先创建一个模块。模块是扩展名为“.py” 格式的文件,在里 面包含了要导入到程序中的代码。

例如在下面的实例中,创建了一个被包含导入函数 make) 的模块,将这个函数单独放 在一个程序文件pizza.py 中,然后在另外一个独立文件 making py 中调用文件 pizza.py 中的 函数 make(), 在调用时调用了整个 pizza.py 文件。

实例6-17:导入模块文件的全部内容

源码路径:下载包\daima\6\6-17

实例文件 pizza.py的功能是编写函数make(), 实现制作披萨的功能,具体实现代码如下所示。

print("\n 制作一个"+ str(size)+

"寸的披萨需要的配料:")

for topping in toppings:

print("-"+topping)

#定义函数make()

#打印显示披萨的尺寸

#遍历配料参数 toppings #打印显示遍历到的值

中的值

实例文件 making.py 的功能是,使用 import 语句调用外部模块文件 pizza.py, 然后使用

文件 pizza.py 中的函数 make() 实现制作披萨的功能,具体实现代码如下所示。

import pizza

pizza.make(16,'黄油','虾',‘芝士') pizza.make(12,‘ 黄油')

#导入模块,让 Python 打开文件 pizza.py

#调用函数make(), 制作第1个披萨

#调用函数make(), 制作第2个披萨

在上述代码中,当 Python读取这个文件时,通过第1行代码 import pizza 让 Python 打 开文件 pizza.py, 并将其中的所有函数都复制到这个程序中。开发者看不到复制的代码,只 是在程序运行时,Python 在幕后复制这些代码。这样在文件 making.py 中,可以使用文件 pizza.py 中定义的所有函数。在第2行和第3行代码中,使用了被导入模块中的函数,在使 用时指定了导入的模块名称 pizza和函数名 make, 并用点“.”分隔它们。执行后会输出:

制作一个16寸的披萨需要的配料:

黄油

- 虾

-芝士

制作一个12寸的披萨需要的配料:

上述实例很好地展示了导入整个模块文件的过程,整个过程只需要编写一条 import 语句 并在其中指定模块名后,就可以在程序中使用该模块中的所有函数。在 Python 程序中,如果 使用这种import 语句导入了名为 module_name.py 的整个模块,就可以使用下面的语法使用其 中的任何一个函数。

module_name.function name(

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:达人之路·《高效办公应用宝典公式·函数与VBA》_3.8 启用公式审核功能
下一篇:《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.4.2 使用其他指定字符分列
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×