• Python3——嵌套函数


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

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

     结果:

    func1

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

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

    那如何调用func2?

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

     结果:

    func1
    func2

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

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

     结果:

    20
    25
    25

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

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

    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
Copyright © 2020-2023  润新知