zoukankan      html  css  js  c++  java
  • 函数对象+作用域day11

    一、函数是对象

    函数是第一类对象的含义是函数可以被当作数据处理

    二、函数的嵌套定义

    def f1():
      def f2():
        print('from f2')
      f2()
    f1()

    三、名称空间与作用域

    1.名称空间namespace

      存放名字与值绑定关系的地方

    2、名称空间分为三大类

      内置名称空间:

        作用:存放Python解释器自带的名字

        生命周期:

          在解释器启动时生效,在解释器关闭时失效

      全局名称空间:

        作用:除了内置的与局部的名字外,其余都是全局名字

        生命周期:

          在文件执行时生效,在文件执行完毕时失效

      局部名称空间:

        作用:用于存放函数调用函数体产生的名字

        生命周期:

          在文件执行过程

          如果调用了某个函数才会临时生效,在函数执行完毕后失效

      三种名称空间的加载顺序是:
        内置-》全局-》局部

      名称空间就是用来存放名字与值的绑定关系的,所以但凡要查找名字
      一定是从三者之一找到,查找顺序:
      从当前所在的位置倒着查找,如果当前所在的位置是局部名称空间,
      则查找顺序是:
        局部-》全局-》内置

    3、作用域

      域指的是区间、范围,作用域即作用范围

      全局作用范围,全局作用域(内置名称空间与全局名称空间)

        全局有效,全局存货

      局部作用范围,局部作用域(局部名称空间)

        局部有效,临时存活

    注:

    作用域关系在函数定义阶段就已经固定死了,但凡调用函数都需要跑到定义阶段去找作用域关系

    在局部如果想要修改全局的可变类型,不需要借助任何声明,可以直接修改

    在局部如果要修改全局的不可变类型,需要借助global声明,声明为全局的变量就可以直接修改了。

  • 相关阅读:
    leetCode 42.Trapping Rain Water(凹槽的雨水) 解题思路和方法
    FizzBuzz and Fibonacci优化
    mysql 存储过程 演示样例代码
    《深入理解Android 卷III》第二章 深入理解Java Binder和MessageQueue
    jsp中URL传递中文參数的处理
    键盘录入多名学生的信息: 格式:姓名,数学成绩,语文成绩,英文成绩,按总分由高到低 将学生的信息进行排列到文件里
    iOS_block代码块
    自己动手写android图片异步载入库
    三分钟教你学Git(十三)
    文本文件打印类库(C#)
  • 原文地址:https://www.cnblogs.com/xiaocao736427460/p/9164060.html
Copyright © 2011-2022 走看看