day 11

day 11

01.可变长参数

  1. 型参

    1. *型参;用元组接收

      *加(型参名);只接收多余的实参,不能接收关键字实参

    2. **型参;用字典接收

      **加(型参名);只接收多余的关键字实参

    def f1(*args,**kwargs)
    # 可以接收所有的实参
    
  2. 实参

    1. *型参;

      *加型参名;将元组或列表内的内容解压缩为位置型参

    2. **型参;

      **加实参名;将字典内的内容当成关键字实参解压出来

02.函数对象==函数名 #函数名加括号就是在调用

python中一切皆对象,所有对象都可以做一下功能

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

03.函数嵌套

  1. 函数内部定义的函数,不能在外部直接调用

04.名称空间

名称空间转名用来存名称

  1. 内置名称空间

    数据类型自带内置方法,python解释器也有内置方法

  2. 全局名称空间

    除了内置和局部都叫全局

  3. 局部名称空间

    函数内部定义的都叫局部

名称空间的生成顺序

  1. 内置名称空间;python解释器启动时创建
  2. 全局名称空间;执行文件代码时创建
  3. 局部名称空间;调用函数时创建

名称空间的寻找顺序

  1. 先从当前所在位置寻找,找不到时 局部--》全局--》内置--》报错(不会你想寻找)

05.作用域

文件执行时,才会对变量进行付值,在变量调用时再从内存地址当中寻找

局部空间在函数执行时开放,函数执行结束后关闭

定义好的变量名一定会指向一个内存地址,

不同作用域之间的变量之间没有任何关系(不包含可变数据类型)

  1. 局部作用域不能修改全局作用域的数据

    global x  # 可以让下面的x作用于全剧作用域
    
  2. 局部和局部作用域之间也不能修改

    nonlocal x  # 可以让下面的x作用于顶层函数的局部
    
原文地址:https://www.cnblogs.com/luocongyu/p/11569466.html