博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python之路,Day32 - Python基础-嵌套函数
阅读量:2047 次
发布时间:2019-04-28

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

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

 

#嵌套函数

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():

    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

 

 

 

 

 

转载地址:http://xblof.baihongyu.com/

你可能感兴趣的文章
Leetcode C++ 《第22场双周赛-1》 5348.两个数组间的距离值
查看>>
[Kick Start 2020] Round A 1.Allocation
查看>>
[Kick Start 2020] Round A 2.Plates
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>
手抄笔记:深入理解linux内核-1
查看>>