zoukankan      html  css  js  c++  java
  • 【python】命名空间、作用域和函数嵌套

    1、命名空间: 当程序执行时将变量与值得对应关系存放在一个空间中

         临时命名空间:这个空间随着函数执行结束而消失

    命名空间分类:

                1. 内置命名空间: 在python解释器内部运行时的变量函数,如内置函数

                2. 全局命名空间: 我们在py文件中直接声明出来的变量,函数

                3. 局部命名空间: 在函数内部声明的变量和函数.

     

    2、作用域:

                1.全局作用域:内置+全局

                2.局部作用域:局部(临时)命名空间

            #只有模块,函数,类,lambda 会引入新作用域

     

            globals() 查看全局作用域中的所有名字和值

            locals() 查看当前作用域中的所有名字和值

    3、函数的嵌套:

       def func1():-----------1

                print("赵")-----------3

                def func2():----4

                    print("钱")-------7

                    def func3():------8

                        print("孙")------10

                    print("李")-------9

                    func3()

                print("周")------------5

                func2()-----------6

            func1()  ---------2 

            #只有调用的时候才有输出,函数声明时整体函数体先不用看,不执行

            #执行结果: 赵  周  钱  李  孙

    4、关键字gobal 和nonlocal 

     gobal :在函数内部引入全局变量或修改,还可以给局部变量升华成全局变量

     nonlocal: 在函数内部,内层函数引入外层函数的局部变量,不可引入全局变量会报错

            如:a = 5

                def func1():

                    #gobal a----------引入全局变量

                    a += 1

                    print(a)

                func1()------------会报错,因a是全局变量,应用gobal引入

                print(a)---------这时a已发生了改变

        

            如:def wrapper():

                    a = 1

                    def inner():

                        #nonlocal  a------引入局部变量

                        a += 1

                        print(a)

                    inner()

                wrapper()

  • 相关阅读:
    如何安装Tomcat服务器
    浅谈数据库中的锁机制
    彻底理解js中this的指向
    Javascript模块化编程的写法
    滚屏加载--无刷新动态加载数据技术的应用
    JavaScript正则表达式
    CSS:水平居中与垂直居中
    Linux常用命令大全
    HTML的元素嵌套规则
    clearfix清除浮动进化史
  • 原文地址:https://www.cnblogs.com/xlzhangq/p/13210942.html
Copyright © 2011-2022 走看看