8.12(day13)闭包函数,装饰器,迭代器

复习

可变长参数

  • *
    • *args: 接收多余的位置实参
    • *(): 打散元组内的元素当做位置实参传给形参
  • **
    • **kwargs: 接收多余的关键字实参
    • **{}:打散字典的元素作为关键字实参传给形参

函数对象

函数名和变量名是等同的

  1. 引用
  2. 函数的参数
  3. 函数的返回值
  4. 容器类元素

函数的嵌套

def f1():
    def f2():
        pass

函数的调用

def f1():
    pass

f1()


def f2():
    f1()

# 函数必须得先定义后调用

名称空间与作用域

内置名称空间

Python解释器的内置方法,如 len/int/float, python解释器启动的时候就有了

全局名称空间

python文件执行的时候生成

局部名称空间

函数调用的时候生成

执行顺序 内置-->全局-->局部

查找顺序 当前位置开始 局部-->全局-->内置

全局作用域

内置+全局

局部作用域

局部

  1. 全局作用域内的变量(x=1)和局部作用域内的变量(x=1),两个x没有任何关系,只针对不可变类型
  2. 局部作用域1内变量(x=1)和局部作用域2内变量(x=1),两个x也没有任何关系,只针对不可变类型
posted @ 2019-09-16 18:54  ZJJJJJJJ  阅读(135)  评论(0编辑  收藏  举报