博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3——嵌套函数
阅读量:5128 次
发布时间:2019-06-13

本文共 937 字,大约阅读时间需要 3 分钟。

 顾名思义,就是函数内还有函数

 

#嵌套函数def func1():    print('func1')    def func2():        print('func2')func1()

 结果:

func1

为什么函数func2没有被执行?

任意一个函数定义完成之后,如果没有人通过名字调用它,就永远不会执行

那如何调用func2?

def func1():    print('func1')    def func2():        print('func2')        func2()func1()

 结果:

func1func2

回顾全局变量和局部变量:

age = 18  #曾祖父def func1():  #爷爷    age = 20    print(age)    def func2():  #爸爸        age = 25        print(age)        def func3():  #儿子            print(age)        func3()    func2()func1()

 结果:

202525

函数引用变量的时候是从该函数内部一层一层的向外找

还有一点值得注意的是,要遵循代码的执行顺序,想要被调用的变量不能在被执行函数的下面

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

转载于:https://www.cnblogs.com/everzin/p/8594707.html

你可能感兴趣的文章
黄山的日出日落
查看>>
不用代码,10分钟打造属于自己的第一款小程序
查看>>
NOIP2011提高组 聪明的质监员 -SilverN
查看>>
准备 macvlan 环境 - 每天5分钟玩转 Docker 容器技术(54)
查看>>
指针自增学习
查看>>
并发调度的可串行性
查看>>
Windows Subsystem for Linux(WSL)安装记录
查看>>
Cryptography I 学习笔记 --- 总结
查看>>
面试题之(vue生命周期)
查看>>
jquery将具有相同名称的元素的值提取出来放到一个数组内
查看>>
启用lumen的user token认证
查看>>
nginx上搭建HLS流媒体服务器
查看>>
利用光场进行深度图估计(Depth Estimation)算法之一——聚焦算法
查看>>
oracle查询正在执行的语句以及正被锁的对象
查看>>
【jzoj】2018/2/2 NOIP普及组——D组模拟赛
查看>>
[Angular] Implementing A General Communication Mechanism For Directive Interaction
查看>>
关于Datatable中Select()方法的使用(转)
查看>>
【JPA】映射
查看>>
Hello IT
查看>>
Puppeteer学习笔记 (1)- 什么是Puppeteer
查看>>