Python3——嵌套函数
顾名思义,就是函数内还有函数
1 2 3 4 5 6 7 8 | #嵌套函数 def func1(): print ( 'func1' ) def func2(): print ( 'func2' ) func1() |
结果:
func1
为什么函数func2没有被执行?
任意一个函数定义完成之后,如果没有人通过名字调用它,就永远不会执行
那如何调用func2?
1 2 3 4 5 6 7 8 9 | def func1(): print ( 'func1' ) def func2(): print ( 'func2' ) func2() func1() |
结果:
func1
func2
回顾全局变量和局部变量:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | age = 18 #曾祖父 def func1(): #爷爷 age = 20 print (age) def func2(): #爸爸 age = 25 print (age) def func3(): #儿子 print (age) func3() func2() func1() |
结果:
20 25 25
函数引用变量的时候是从该函数内部一层一层的向外找
还有一点值得注意的是,要遵循代码的执行顺序,想要被调用的变量不能在被执行函数的下面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | age = 18 #正确: def func1(): # age = 20 放在上面 def func2(): print (age) age = 20 #放在下面,其实都是放在func2的上面 func2() func1() #错误: def func1(): def func2(): print (age) func2() age = 20 #不能放在引用该变量的函数下 func1() |
结果:
#正确: 20 #错误: NameError: free variable 'age' referenced before assignment in enclosing scope
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步