Day11

1.函数对象: ①可以被引用
​ ②可以作为另一个函数的参数
​ ③可以作为另一个函数的返回值0
​ ④可以被存储到容器类型中

2.函数嵌套:
①嵌套调用:在一个函数中调用了另一个函数
​ ②嵌套定义:在一个函数内定义了另一个函数

​ 特点:定义在函数内的函数只能在函数内使用,外界不能直接访问

3.名称空间:存储名字与内存地址对应关系的空间

​存储名称的空间,名称空间中,名字与内存地址一一对应

内置名称空间:解释器自带的名称与值的对应关系
python解释器启动的时创建,关闭python解释器销毁

全局名称空间:文件级别的名称,除了内置的和函数内的都在全局名称空间
执行py文件时创建,执行完毕时销毁

局部名称空间:只要是函数内的名称就在局部名称空间
调用函数时创建,函数执行完毕就销毁

加载顺序,1.内置,2,全局3.局部
查找顺序,1.局部 2,全局 3,内置

4.作用域:
域指的是区域,范围的意思
全局的名称空间和内置的名称空间,在使用上没什么区别
局部和全局的,内置的,就有区别了,局部定义的只能在局部使用

给三个空间划分范围
全局和内置的可以划分到一个范围内
global全局范围,就是所谓的全局作用域

局部的单独划分为一个范围
local 局部作用域

globals() 查看全局作用域中的内容
dir(globals()["_builtins_"])

locals() 查看作用域中的内容

global明确声明,要使用全局中的age

nonlocal使用闭包函数外部函数变量 nonlocal
明确声明使用上一层中的a,如果上一层没有a,则找找上上层,不能找全局

5.闭包函数:
1.定义在另一个函数内
2.在内部函数中使用外部的名称

函数的作用域在定义时就已经固定好,与调用位置没有关系
在返回这个内容的函数时,不是单纯的返回函数,还把函数中访问到的局部名称一起打包了
相当于将内部函数与访问的数据打包在一起了(数据不包含全局变量)

Day11名称空间,作用域,闭包函数的更多相关文章

  1. Python记录9:函数4:名称空间作用域+闭包函数+装饰器

    ''' 一: 名称空间namespaces     名称空间就是存放名字与值绑定关系的内存空间 二: 名称空间分为三种     内置名称空间:         1. 特点: 存放是python解释器自 ...

  2. day 12 名称空间和闭包函数

    函数嵌套 按照函数的两个阶段分为: 嵌套调用:在一个函数内部调用另一个函数 嵌套定义:在一个函数内部定义另一个函数 名称空间(namespace):存储名字的内存区域 名称空间的分类: 内置名称空间: ...

  3. 《Python》 函数进阶和名称空间作用域

    函数进阶: 一.动态参数:*args  **kwargs *args是元祖形式,接收除去键值对以外的所有参数 # args可以换成任意变量名,约定俗成用args **kwargs接收的只是键值对的参数 ...

  4. 函数嵌套>作用域>闭包函数

    一:函数对象 函数是第一类对象,即表示函数可以当做数据传递 可以被引用:把函数内存地址赋值给一个变量名,仍然遵循函数的调用规则. 可以被当做参数传递:传递的是函数的运行的结果#可以当做返回值 把函数作 ...

  5. Python入门之函数的嵌套/名称空间/作用域/函数对象/闭包函数

    本篇目录: 一.函数嵌套 二.函数名称空间与作用域 三.函数对象 四.闭包函数 ============================================================ ...

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

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

  7. day11 python名称空间 作用域

    day11 python   一.三元运算符 def func(a, b):     return a if a > b else b   print(func(44,66))     二:函数 ...

  8. python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套

     复习   1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用:     # 字符串的比较#  -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...

  9. 动态参数 名称空间 作用域 作用域链 加载顺序 函数的嵌套 global nonlocal 等的用法总结

    03,动态参数 *args,**kwargs # 用户传入到函数中的实参数量不定时,或者是为了以后拓展,# 此时要用到动态参数*args,**kwargs(万能参数.)# *args接收的是所有的位置 ...

随机推荐

  1. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  2. 117 Populating Next Right Pointers in Each Node II 每个节点的右向指针 II

    这是“每个节点的右向指针”问题的进阶.如果给定的树可以是任何二叉树,该怎么办?你以前的解决方案仍然有效吗?注意:    你只能使用恒定的空间.例如,给定以下二叉树,         1       / ...

  3. vue中的number

    今天在vue文档中看到有number这样一个修饰符 觉得挺方便的就尝试了一下下面是代码 <body> <div id="box"> <input ty ...

  4. Mysql之Union用法

    在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同. MYSQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后 ...

  5. ASP.NET页面传值的方法

    ASP.NET页面传值的方法 From:Refresh-air 在面试的时候,经常会遇到这样的问题,其实我们会对其中的几种方法比较熟悉,因为项目中经常使用.但是要全面的回答ASP.NET中页面传值的方 ...

  6. 文件操作,Io流。

    private void textBox1_TextChanged(object sender, EventArgs e) { } private void button1_Click(object ...

  7. map中使用await 异步函数

    let result=await Promise.all(dataComments.map(async (ele)=>{ return (async ()=>{ let resData= ...

  8. java.lang.ClassCastException android.widget.RelativeLayout LayoutParams 异常

    1.在xml布局文件如下所示: <RelativeLayout android:layout_width="match_parent" android:layout_heig ...

  9. iOS 自定义读写文件

    LSCacheFile.h // // LSCacheFile.h // iPhone // // Created by xujinzhong on 14-6-5. // Copyright (c) ...

  10. 利用UnblockNeteaseMusic实现网易云破版权,并实现shell可快速访问

    注:本篇包含mac及windows下安装方式详细 mac安装 前提:安装有node环境,可参考 mac下安装nodejs 安装 下载git代码到本地 git clone https://github. ...