码迷,mamicode.com
首页 > 其他好文 > 详细

2.4函数进阶

时间:2018-05-19 18:42:19      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:函数   进阶   使用   影响   嵌套   顺序   执行   全局变量   表达式   

  1. 名称空间:又名name space, 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方
    1. locals: 是函数内的名称空间,包括局部变量和形参
    2. globals: 全局变量,函数定义所在模块的名字空间
    3. builtins: 内置模块的名字空间
    4. 作用域查找顺序:LEGB 代表名字查找顺序: locals -> enclosing function -> globals -> __builtins__
    5. LEGB 代表名字查找顺序: locals -> enclosing function -> globals -> __builtins__
      1、locals 是函数内的名字空间,包括局部变量和形参
      2、enclosing 外部嵌套函数的名字空间
      3、globals 全局变量,函数定义所在模块的名字空间
      4、builtins 内置模块的名字空间
  2. 闭包
    关于闭包,即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数)。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数。当其中一个这样的内部函数在包含它们的外部函数之外被
    调用
    时,就会形成闭包。也就是说,内部函数会在外部函数返回后被执行。而当这个内部函数执行时,它仍然必需访问其外部函数的局部变量、参数以及其他内部函数。这些局部变量、参数和函数声明(最初时)的值是外部
    函数返回时的值,但也会受到内部函数的影响。

    闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域

     

  3. 装饰器

 

2.4函数进阶

标签:函数   进阶   使用   影响   嵌套   顺序   执行   全局变量   表达式   

原文地址:https://www.cnblogs.com/sszy/p/9060952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!