一:名称空间

1:什么是名称空间:

  名称空间即:储存名字与值的内存地址关联关系的空间

2.名称空间的分类:

  内置名称空间:存储器自带的一些名称与值的对应关系,如:print,len,max等;

    生命周期为:在python解释器启动时创建,在解释器关闭时销毁

  全局名称空间:除了内置的,函数内的都是在全局名称空间中

    生命周期为:在执行文件时,创建全局名称空间,所有文件中的代码全部执行完毕后,销毁名称空间(即解释器关闭时)

  局部名称空间:只要在函数内的名称空间就是局部的

    生命周期为:调用函数时创建,函数执行完毕时就销毁

3.名称空间的加载顺序:内置的-->全局的-->局部的

名称空间的查找顺序:局部名称空间-->全局名称空间-->内置名称空间(基于当前位置向上层空间查找)

二. 作用域

  域:区域,范围的意思

    全局名称空间和内置名称空间在使用上没有什么区别,而局部的名称空间只能在局部使用

  空间的范围:global 表示全局范围  就是所谓的全局作用域(globals 查看全局作用域的内容)

        local 表示局部作用域

  总结:1.查找名称的顺序是基于当前位置向上层空间查找

     2.名称空间的嵌套关系是在函数定义阶段就固定死的,与调用位置无关

# age=18
# def func2():
# # 明确声明使用全局的变量age(修改a的值)
# global age
# age=19
# func2()
# print(age)

global 实例

运行结果为: 19

a = 1
def func3():
a = 10
def inner():
# 明确声明 要使用上一层的 a 如果上一层没有,则使用上上一层,但是不能使用全局中的a
nonlocal a
a = 100
print(a)
inner()
print('这是func3中的a',a)
func3()

nonlocal 实例

运行结果为: 这是func3中的a 100

  

    

    

python 函数的名称空间及作用域的更多相关文章

  1. Python 函数对象-函数嵌套-名称空间与作用域-闭包函数

    今日内容: 1. 函数对象 函数是第一类对象: 指的是函数名指向的值可以被当中数据去使用 1.可以被引用 2.可以当做参数传给另一个函数 3.可以当做一个函数的返回值 4.可以当做容器类型的元素 2. ...

  2. day_12函数默认值,数据类型的补充,函数对象名称空间与作用域,函数的嵌套定义

    复习, 昨天讲了字符串的比较,按照从左往右比较每一个字符,通过字符对应的ASCII码进行比较 函数的参数,‘ 实参与形参 形参:在函数定义时()中出现的参数 实参,在函数调用时()中出现的参数 实参的 ...

  3. python基础:名称空间与作用域

    Python的变量定义后都有自己的作用域,每个作用域内都有名字空间.名称空间就是变量名称与对象的关联关系.Python中使用变量名引用对象,需要使用该变量时,就在命名空间中进行搜索,获取对应的对象.从 ...

  4. Python—函数的名称空间

    名称空间 又名name space, 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方 名称空间共3种, ...

  5. day12 函数对象,名称空间与作用域

    """ 今日内容: 1.函数参数传值细节 2.三元表达式 3.列表及字典推导式 4.函数对象 5.名称空间与作用域 6.函数的嵌套定义初识 ""&qu ...

  6. PYTHON-函数对象,嵌套,名称空间与作用域,闭包函数

    一 函数是第一类对象,即函数可以当作数据传递 1 可以被引用 2 可以当作参数传递 3 返回值可以是函数 3 可以当作容器类型的元素 def foo(): return len f = foo pri ...

  7. python全栈开发-Day9 函数对象、函数嵌套、名称空间与作用域

    一 .函数对象 一 .函数是第一类对象,即函数可以当作数据传递 可以被引用 可以当作参数传递 返回值可以是函数 可以当作容器类型的元素 二. 利用该特性,优雅的取代多分支的if def foo(): ...

  8. python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义

    复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可 ...

  9. python之函数对象、函数嵌套、名称空间与作用域、装饰器

    一 函数对象 一 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素 二 利用该特性,优雅的取代多分支的if de ...

随机推荐

  1. Xcodebuild ipa shell

    命令行下打包iOS App工程: #!/bin/sh # # How To Build ? #http://www.jianshu.com/p/3f43370437d2 #http://www.jia ...

  2. 微信小程序富文本中的图片大小超出屏幕

    这个问题我在小程序社区中提的,后来有个帮我回答了这个问题,我试了一下可以. 解决办法是过滤富文本内容,给图片标签添加一个样式,限制图片的最大宽度. replace(/\<img/gi,   '& ...

  3. PHP之缓存雪崩,及解决方法(转)

    一.什么是缓存雪崩缓存雪崩就是指缓存由于某些原因(比如 宕机.cache服务挂了或者不响应)整体crash掉了,导致大量请求到达后端数据库,从而导致数据库崩溃,整个系统崩溃,发生灾难. 下面的就是一个 ...

  4. input[type='file']默认样式

    <input type="file" name="" id="" value="" /> 当input的ty ...

  5. XML二

    XML的语法要求: 1,XML文档必须有一个顶层元素,即文档元素,所有其他元素必须嵌入在文档元素中. 2,元素嵌套要正确,即如果一个元素在另一个元素中开始,那么必须在同一个元素中结束. 3,每个元素必 ...

  6. hibernate一级缓存和快照

    摘自网络: Hibernate中的一级缓存的底层是以Map形式存在的,key是主键,value是对象,所以它的泛型为Map<Serializable,Object>,key的泛型为串行化是 ...

  7. MySQL 中,字符串 0 和数字 0 的区别

    我的理解: 用户输入值后,MySQL 根据该字段的数据类型,来转换值.

  8. Linux环境安装PostgreSQL-10.1

    转载自:https://www.cnblogs.com/LinBug/p/8082790.html Linux环境安装PostgreSQL-10.1   环境及资源 Linux版本:CentOS re ...

  9. HBuilder后台保活开发(后台自动运行,定期记录定位数据)

    http://ask.dcloud.net.cn/question/28090 后台自动运行,定期记录定位数据 分类:HTML5+   各位新年好 小弟以前用hbuilder开发过几个项目,现在有一新 ...

  10. [UE4]Widget Switcher:控件切换器

    一.Widget Switcher可以有很多子控件,但一次只会显示一个子控件.所有的子控件默认情况下都是充满整个Widget Switcher容器 二.Widget Switcher.Active W ...