Python函数嵌套&匿名函数&跳转表

函数嵌套

内部函数整个函数体都在外部函数的作用域;如果在外部没有对这个函数的引用,那么除了在函数体内,任何地方都不能调用这个函数

python 复制代码
def func1():
    print('1')
    def func2():
      	print('2')

如果我们想使用函数内部定义的func2(),可以采用前项声明的方式

python 复制代码
def func2():
	pass
def func1():
    print('1')
    global func #声明局部函数为全局函数对象
    def func2():
      	print('2')

匿名函数

  • 匿名函数 (lambda表达式):
    • 除了def语句之外,我们还可以使用lambda表达式创建函数
    • 这样创建出来的函数,需要额外使用变量名保存
    • 匿名函数 一般用来创建简单 函数,或制作跳转表

语法格式

python 复制代码
lambda x1,x2,x3... : exper

参数可以有多个,返回值为冒号后面表达式所返回的结果

python 复制代码
>>> f = lambda x,y : x+y
>>> f(1,2)
3

缺省参数 也可以在lambda中使用;注意缺省参数定义顺序

python 复制代码
>>> f = lambda x,y=1 : x+y
>>> f(10)
11
>>> f = lambda x=1,y : x+y #缺省参数定义顺序一定是从右向左
  File "<stdin>", line 1
SyntaxError: non-default argument follows default argument

跳转表

  • 跳转表 (jump table):函数方法的列表字典,能够按照需要执行相应的动作
python 复制代码
L = [ lambda x:x*2  , lambda x:x*3 , lambda x:x*4] #含有三个lambda函数的列表
for f in L:
	print(f(2))
相关推荐
神明9314 分钟前
数据库模型设计实战:如何导出数据库完整数据字典_规范化流程
jvm·数据库·python
老纪6 分钟前
SQL中如何查找包含关键字的行:FULLTEXT全文索引检索
jvm·数据库·python
茉莉玫瑰花茶7 分钟前
LangGraph 入门教程:构建 AI 工作流 [ 案例二 ]
开发语言·人工智能·python
yaoxin5211237 分钟前
403. Java 文件操作基础 - 写入二进制文件
java·开发语言·python
dfdfadffa8 分钟前
c++怎么利用std--filesystem--path处理包含多个扩展名的文件名【详解】
jvm·数据库·python
阿正呀20 分钟前
c++如何动态追加JSON数组到已有文件_nlohmann局部修改【详解】
jvm·数据库·python
m0_6908258222 分钟前
CSS如何使用-disabled控制禁用按钮的鼠标样式_通过状态伪类优化交互
jvm·数据库·python
财经资讯数据_灵砚智能23 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月11日
大数据·人工智能·python·信息可视化·自然语言处理
2301_7950997423 分钟前
JavaScript事件委托机制在高性能列表开发中的应用
jvm·数据库·python
Sylvia33.24 分钟前
世界杯数据链路解析:从球场传感器到终端推送的毫秒级架构
java·前端·python·架构