博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础学习笔记(八)
阅读量:5332 次
发布时间:2019-06-14

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

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

二 函数的嵌套

三 global nonlocal关键字

 

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

  命名空间

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

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

  

  命名空间分类

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

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

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

 

  加载顺序

    1 内置命名空间

    2 全局命名空间

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

 

  取值顺序

    1 局部命名空间

    2 全局命名空间

    3 内置命名空间

  

  作用域

    作用于就是作用范围,

      全局作用范围  

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

      局域作用域

        在函数内部可以使用

 

    作用域命名空间

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

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

 

三 函数的嵌套

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

 

四 global和nonlocal关键字

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

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

转载于:https://www.cnblogs.com/FelixTeng/p/9879681.html

你可能感兴趣的文章
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
Redis常用命令
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
centos系统python2.7更新到3.5
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>