zoukankan      html  css  js  c++  java
  • Python基础学习笔记(八)

    一 命名空间,局部名称空间,全局名称空间,作用域,加载顺序

    二 函数的嵌套

    三 global nonlocal关键字

    一 命名空间,局部名称空间,全局名称空间,作用域,加载顺序

      命名空间

        在Python解释器开始执行后,就会在内存中开辟一个空间,每当遇到一个变量的时候,就把变量名和值之间的关系记录下来,但是遇到函数定义的时候,解释器只是把函数名读入内存,表示这个函数存在了,至于函数内部的变量和逻辑,解释器是不关心的,也就是说一开始的时候函数只是加载进来.只有当函数被调用和访问的时候,解释器才会根据函数的内部声明变量来进行开辟变量的内部空间,随着函数执行完毕,这些函数内部占用的空间也会随着函数执行完毕而清空.

        我们把存放名字和值的关系的空间叫:命名空间

      

      命名空间分类

        1 全局命名空间  我们直接在py文件中,函数外声明的变量都属于全局命名空间

        2 局部命名空间  在函数中声明的变量会放在局域命名空间

        3 内置命名空间  存放在python解释器为我们提供的名字,list tuple str 都是内置命名空间

      加载顺序

        1 内置命名空间

        2 全局命名空间

        3 举报命名空间(函数被执行的时候)

      取值顺序

        1 局部命名空间

        2 全局命名空间

        3 内置命名空间

      

      作用域

        作用于就是作用范围,

          全局作用范围  

            包括内置命名空间和全局命名空间,在整个文件的任何位置都可以使用(遵循从上到下逐行执行)

          局域作用域

            在函数内部可以使用

        作用域命名空间

          1 全局作用域:全局命名空间 + 内置命名空间

          2 举报作用域:局部命名空间

    三 函数的嵌套

      运行到函数调用行时就调用函数(区分是否调用函数)

    四 global和nonlocal关键字

      nonlocal  表示在局部作用域中,调用父级命名空间中的变量(没有则再上一级找,找不到会报错)

      global  表示不再使用局部作用域中的内容,而改用全局作用域中的变量

  • 相关阅读:
    Windows 无法启动xx服务 错误1053:服务没有及时响应启动或控制请求
    Nginx之解压编译安装-yellowcong
    SqlServer中的数据类型UniqueIdentifier
    Android利用Volley异步载入数据完整具体演示样例(二)
    蓝桥杯——历年真题之带分数
    联想教育应用使用说明(7.6版本号)——第4章 网络控制工具的使用
    oracle入门学习笔记
    Asp.Net实现JS前台带箭头的流程图方法总结!(个人笔记,信息不全)
    到底什么是RPC?
    Codeforces Round #336 (Div. 2) 608C Chain Reaction(dp)
  • 原文地址:https://www.cnblogs.com/FelixTeng/p/9879681.html
Copyright © 2011-2022 走看看