zoukankan      html  css  js  c++  java
  • Day 10 函数的嵌套

    def func1():
        print("我是func1")
    
    def func2():
        print("我是func2")
        func1()
    
    def func3():
        func2()
        print("我是func3")
    func3()
    这样的代码不是嵌套. 互相调用
    函数可以互相嵌套
    def outer():
        def inner():
            print("我是内部")
        print("我是外部")
        inner()    #必须在这里调用
    
    outer()

    def outer():
        print("我是外面的")
        def inner_1():
            def inner_2():
                print("我是里面的2")
            inner_2()
            print("我是里面的1")
        inner_1()
        print("我是外面的收尾")
    
    outer()

    全局 global,这种改动是危险的

    a = 10
    def func():
        global a #表示在当前作用域中的使用的a是全局中的变量
        a = 20 # 所有的a都是外面的了
        print(a) # 现在只有看的权利
    
    print(a) # 10
    func() # 20
    print(a) # 20

    nonlocal 局部,在自己的圈子往上一层,如果没有,再往上面找

    def outer():
        a = 10
        def inner():
            nonlocal a # 找的是局部当中, 离他最近的上层的那个变量
            a = 20
            print(a)
        print(a) # 10
        inner() # 20
        print(a) # 20
    outer()

    a = 1
    def fun_1():
        a = 2
        def fun_2():
            nonlocal a
            a = 3
            def fun_3():
                a = 4
                print(a)
            print(a)
            fun_3()
            print(a)
        print(a)
        fun_2()
        print(a)
    print(a)
    fun_1()
    print(a)
    global 引入全局变量, 可以定义全局变量
    nonlocal 引入局部中离他最近的外层变量
    
    def func():
        global a # 没有也得有. 自动帮你创建
        a = 20
    
    func()
    print(a)
  • 相关阅读:
    个人第四次作业
    个人第四作业
    英语学习app——Alpha发布2
    英语学习app——Alpha发布1
    团队作业---系统设计
    团队第二次作业:需求分析
    第三次作业:结对编程
    团队第一次作业
    Web测试实践 第二天
    Web测试实践 第一天
  • 原文地址:https://www.cnblogs.com/xiaomai-rhce/p/10403906.html
Copyright © 2011-2022 走看看