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))
相关推荐
for_ever_love__10 小时前
python基础语法学习: 面向对象的三大特性
开发语言·python·学习
Spider赵毅10 小时前
Python爬虫踩坑实录:BeautifulSoup使用中的高频问题排查
爬虫·python·beautifulsoup
怪奇云呼军11 小时前
知识库也会注入指令?闪电智能VoiceAgent 如何防住 Prompt Injection
人工智能·python·算法·云计算·音视频
zmzb010313 小时前
Python课后习题训练记录Day194
python·opencv·计算机视觉
benchmark_cc13 小时前
批量获取量化数据时,如何设置合理的超时和重试机制?——QuantDash 高性能实战指南
开发语言·人工智能·python·pandas·量化·quantdash
2601_9669496513 小时前
使用 Pandas 读取批量数据时如何避免内存溢出?QuantDash 量化数据工程师避坑指南
开发语言·python·pandas·tushare·akshare·quantdash
65岁退休Coder13 小时前
LangChain v1.3.4 笔记 - 08 MCP & 相关概念
后端·python·langchain
wdloumiga13 小时前
使用 Construct 3零基础做一些2D小游戏
python·游戏·游戏2d
用户83562907805114 小时前
使用 Python 查找和替换 Word 文档中的文本
后端·python
黑马水牛14 小时前
Carla仿真系列:9_Carla 单目障碍物测距,四种方法原理与实测
经验分享·python·深度学习·计算机视觉·ros·传感器·carla仿真