函数(三)

函数对象

  函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名的调用就是函数对象直接的应用

  函数对象的应用

  #1 可以直接引用

  #2 可以当作函数参数传递

     #3 可以作为函数的返回值

  #4 可以做为容器类型的元素(比如在字典中,value对应函数名,输入key就可以直接调用到value,在加上()就可以调用函数。

名称空间

  名称空间:存放名字和内存空间地址对应关系的容器

  作用:解决由于名字有限,导致名字重复发送冲突的问题

三种名称空间

  ①Bulit-in :内置名称空间;系统级,一个;随解释器执行而产生,解释器停止而销毁

  ②Global:全局名称空间;文件级,多个;随所属文件加载而产生,文件运行完毕而销毁

  ③ Local:局部名称空间;函数级,多个;随所属函数执行而产生,函数执行完毕而销毁

  del 变量名:可以移除最近的变量名与内存空间地址的对应关系。

  加载顺序: Bulit in,Global,Local

作用域

  作用域:名字起作用的范围

  作用:解决同名字可以共存的问题

四种作用域

  ① Bulit-in:内置作用域,所有文件函数

  ② Global:全局作用域。当前文件所有函数

  ③ Enclosing:嵌套作用域,当前函数与当前函数的内部函数

  ④ Local:局部作用域,当前函数

闭包

  closure:被包裹的函数,称之为闭包

  完整的闭包结构:1.将函数进行闭包处理;2.提升函数名的作用域,将内部函数作为外部函数的返回值

  

posted @ 2019-04-01 15:24  Mr-Bear  阅读(82)  评论(0编辑  收藏  举报