day11 函数对象

day11 函数对象


函数名其实就是变量名

  1. 引用,赋值
  2. 当作函数的返回值
  3. 当作函数的参数
  4. 作为容器的元素

函数的嵌套

函数的定义阶段只检测语法,不执行代码

所以没有被调用的函数内部只要没有语法上的错误就不会报错

煞笔才用嵌套

名称空间

内置名称空间

所学的所有内置方法,其实就是一个个函数,这些函数被封装后具有了某种功能

len() 是python的内置方法,python启动的时候,就会定义len()函数,并且把len()丢入内存空间,这个内存空间叫做内置名称空间

生命周期: python启动的时候活了,运行完就死了

全局名称空间

除了内置和局部,就是全局

生命周期:程序/文件运行的时候才会活,运行完毕就死了

局部名称空间

函数内部的都叫局部,也就是说函数内部定义的名字都放入了局部名称空间中了

生命周期:函数运行的时候会活,运行完就死了

执行顺序

内置名称空间--->全局名称空间--->局部名称空间

查找顺序

从当前名称空间开始查找,然后逐步往上,则顺序为局部-->全局-->内置

作用域

作用域关系在函数定义阶段就已经确定了

全局作用域: 适用于全局+内置,也就是说内置和全局定义的名字所有地方都能获取到

局部作用域:只能适用于局部范围,在局部定义的名字只能在局部获取到

函数与函数之间可能会有相同名字的变量,但是这两个变量毫无关系,作用域不同

不推荐使用的global/nonlocal

global:局部修改全局

猜你喜欢

转载自www.cnblogs.com/wsxiaoyao/p/10952331.html
今日推荐