当前位置: 首页 > news >正文

淮安市建设银行网站首页免费咨询服务合同范本

淮安市建设银行网站首页,免费咨询服务合同范本,网站建设维护 天博网络,东北大学秦皇岛吧Python 中的 lambda 函数和嵌套函数 Python 中的 lambda 函数和嵌套函数Python 中的 lambda 函数嵌套函数(内部函数)封装辅助函数闭包和工厂函数 Python 中的 lambda 函数和嵌套函数 Python 中的 lambda 函数 Lambda 函数是基于单行表达式的匿名函数。…

Python 中的 lambda 函数和嵌套函数

  • Python 中的 lambda 函数和嵌套函数
    • Python 中的 lambda 函数
    • 嵌套函数(内部函数)
      • 封装
      • 辅助函数
      • 闭包和工厂函数

Python 中的 lambda 函数和嵌套函数

Python 中的 lambda 函数

Lambda 函数是基于单行表达式的匿名函数。就像用def关键字定义常规函数一样,lambda关键字用于定义匿名函数。Lambda函数仅限于单行。这意味着它们不能使用多个语句,也不能使用return语句。在计算完单行表达式后,返回值会自动返回。

lambda函数可以在任何使用常规函数的地方使用。lambda函数最简单、最方便的用法是与mapreducefilter函数一起使用。当希望使代码更简洁时,Lambda函数很有帮助。

之前我们讨论过mapfilter,现在我们重用之前的代码,演示一下定义和使用 lambda 函数。请参考下面的代码:

myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]new_list = list(map(lambda x: x * x, myList))
print(new_list)new_list = list(filter(lambda x: x % 2 == 0, myList))
print(new_list)

以上代码的输出结果是:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[2, 4, 6, 8, 10]

尽管代码变得更加简洁了,但是 lambda 表达式是不能复用的,并且也不容易维护。这和其它编程语言,比如 C++ 中的 lambda 表达式有很大不同。在 C++ 里,lambda 表达式可以实现任意复杂的功能。在 Python 中,只有当实现的功能非常简单时,使用 lambda 函数比较合适。不过,Python 中的嵌套函数很强大,建议使用。

嵌套函数(内部函数)

当我们在现有函数中添加一个函数时,它被称为内部函数或嵌套函数。使用内部函数的好处是,它们可以直接访问外部函数作用域中已定义或可用的变量。创建内部函数与使用def关键字并进行适当缩进来定义常规函数相同。内部函数不能被外部程序执行或调用。但是,如果外部函数返回内部函数的引用,则调用者可以使用它来执行内部函数。

内部函数有很多优点,应用很广泛。接下来举几个例子。

封装

内部函数的一个常见用例是对外部世界隐藏其功能。内部函数只在外部函数作用域中可用,对全局作用域中不可见。下面的代码示例展示了一个隐藏内部函数的外部函数:

def outer_hello():print("这是外部函数")def inner_hello():print("这是内部函数")inner_hello()
outer_hello()

在外部函数所在的作用域内,只能调用外部函数。内部函数只能在外部函数的作用域内调用。以上代码的输出结果是:

这是外部函数
这是内部函数

辅助函数

在某些情况下,我们会发现函数中的部分代码可以复用,那么我们就会把这部分代码封装成一个单独的函数。如果可复用代码仅仅是在函数内部可复用,那么我们可以把可复用代码封装成内部函数。这种类型的内部函数也被称为辅助函数。下面就是一个辅助函数的例子:

def outer_fn(x, y):def get_prefix(s):return s[:2]x2 = get_prefix(x)y2 = get_prefix(y)print(x2, y2)outer_fn("abcd", "美丽新世界")

上面的outer_fn 中定义的辅助函数 get_prefix,被复用了 2 次。这段代码的输出结果是:

ab 美丽

闭包和工厂函数

这是一个内部函数的亮点应用场景。内部函数和其外围环境在一起,称作闭包,是动态创建的函数,可以被另一个函数当成返回值返回。闭包的真正神奇之处在于,被返回的函数(闭包)可以完全访问创建它时的变量和命名空间。即使外层函数已经执行完毕,也不影响闭包的正常执行,和对变量和命名空间的访问。

闭包的概念可以用下面的代码演示。在下面的代码中,我们展示了如何创建一个函数工厂,并且从函数工厂中返回一个闭包:

def power_calc_factory(base):def power_calc(exponent):return base**exponentreturn power_calcpower_calc_2 = power_calc_factory(2)
power_calc_3 = power_calc_factory(3)print(power_calc_2(2))
print(power_calc_2(3))
print(power_calc_3(2))
print(power_calc_3(4))

在上面的代码中,power_calc_factory 扮演了一个函数工厂,每一次调用它,就会返回一个闭包。power_calc 是一个内部函数,它可以访问外部函数的变量 basepower_calc 的参数 exponent 是在它被调用时作为实参传递进来的。return power_calc 这一语句,把 power_calc 当作闭包返回了。

上面的代码的输出结果是:

4
8
9
81

<完>

http://www.yayakq.cn/news/902397/

相关文章:

  • 搭建好ftp服务器 如何通过网站访问免费制作自己的网站
  • 北京网站建设团队php能自己做网站吗
  • 抖音直播间挂人气自助网站做一个小程序需要多少钱
  • 网站美食建设图片素材如何对网站做进一步优化
  • 如何进入网站后台 被黑合肥网页制作
  • 网站建设项目预算表上海做网站要多少钱
  • 网页设计作业网站泰州网页网站制作
  • 尉氏做网站中国工信部官网查询网站备案
  • 创新的做网站网页设计html代码教程
  • 网站后台打开很慢泉州网站建设哪家好
  • 遵义网站建设txwl企业进行网站建设的方式
  • 网站建设动态代码关于网站建设的合同范本
  • 做企业网站都有什么平台计算机做网站开题报告
  • 网站创造国外开源商城系统
  • 上海人才网招聘网官方网深圳专业seo
  • 深圳网络推广建站为什么要懂seo
  • 品牌网站建设工作室中山 网站定制
  • 培训网站方案做g3云推广需要网站
  • 北京网站建设 网络安全怎么用html做网站
  • 做一个商城网站重庆建设银行网站
  • 网站关键词排名不稳定怎么做推广和宣传
  • WaP网站模块网站开发工程师面试问哪些问题
  • 企业网站建设目的选择题app在线
  • cms企业网站模板电子商务平台运营是做什么的
  • 新奇网站建设jsp做的网站如何查看
  • 学校网站php源码|班级主页教师博客学生博客|学校网站织梦仿做资质去哪个网站填资料
  • 易企秀网站开发语言重庆网站建设cqhtwl
  • 网站打开速度检测攻击罗定网站优化
  • 公司网站建设工作计划建设银行登录网站
  • 网站开发的晋升晋升空间路径湖北建设工程造价协会网站