编程语言
首页 > 编程语言> > 疫情环境下的网络学习笔记 python 3.19

疫情环境下的网络学习笔记 python 3.19

作者:互联网

3.19

回顾

  1. python中所有传递的值,都不是值本身,而是值的引用,即内存地址,所以也称作引用传递

  2. 函数两大类:内置函数,自定义函数

  3. 什么是形参,什么是实参:

    实参:变量值,形参:变量名

  4. 位置形参:从左到右依次写下来,必须被传值

  5. 默认形参:定义阶段已经为其赋值,调用的时候可以不用被其赋值。默认形参赋值的内容应该是不可变的

    函数的运行不应该受外界代码的干扰

    需求默认形参是可变值的时候可以默认赋值为none,再在函数体内判断

  6. 位置实参:从左到右顺序,一一对应传给对应的位置形参或默认形参

  7. 关键字实参:可以打乱顺序,指名道姓地对一个形参赋值

    必须在位置实参后面,不能重复对形参赋值

  8. *,** 在形参中,可以接收溢出的位置实参和溢出的关键字实参

    溢出的位置实参保存成元组赋值给 *args,溢出的关键字实参保存成字典赋值给 **kwargs

  9. *,**在实参中用于打散,*打散一个个元素,分别跟位置形参对应

    **打散字典成关键字实参

  10. # 很重要
    def index(x,y,z):
        print(x,y,z)
    
    def wrapper(*args,**kwargs):
        index(*args,**kwargs)
    
    wrapper(1,y=2,z=3)
    # x:溢出的位置实参,转成元组传入args。y,z:溢出的关键字实参,转成字典传入kwargs
    # index中 *将args打散,元组转回成x,**打散kwargs,字典转回成关键字
    # 最终wrapper的格式会转嫁给index

    将本来传给wrapper的格式原封不动地传给其中调用的函数index

    给wrapper传的参数格式要遵循 index的参数格式

今日内容

  1. 函数参数补充

    命名关键字参数

    组合使用

  2. 名称空间与作用域

    三种名称空间的用途与生命周期

    三种名称空间的加载顺序

    三种名称空间查找名字的优先级

  3. 作用域

    global

    local

    嵌套使用的情况下,作用域与名字的查找关系

  4. 函数对象

  5. 闭包函数

正课

命名关键字参数

在定义函数时,* 后面的参数,如下所示,称之为命名关键字形参

def func(x,y,*,a,b): # a,b为命名关键字参数
    print(x,y)
    print(a,b)
    
func(1,2,a=1,b=2)
  1. 命名关键字实参必须按照 key = value的形式为其传值

    强制让函数的使用者用key = value格式传值

  2. 在定义的时候给命名关键字参数赋默认值,可以在调用的时候不传

组合使用

形参中定义的顺序:

实参中调用的顺序:

名称空间

名称空间是内存中的一个空间,用来存放名字,是对栈区的划分

原来讲的概念里,变量名存放在内存中的栈区。现在将栈区再细分,把同类的变量名分为一片,就是名称空间

划分名称空间后,给所有的名字分门别类存放,且避免了相同的名字被覆盖的情况,可以在不同的名称空间内使用同样的名字不互相冲突

当查找名字的时候,有优先级

全局范围:内置名称空间,全局名称空间

局部范围:局部名称空间

内置名称空间

全局名称空间

局部名称空间

加载顺序,销毁顺序

加载顺序:

销毁顺序:

名称空间不是真实存在的东西,像国家,只是用来将名字进行分类。真正用于存放的东西是栈区

名字的查找顺序

从当前所在的位置向上一层一层找

内置         

标签:3.19,python,笔记,print,名称,空间,实参,全局,def
来源: https://www.cnblogs.com/telecasterfanclub/p/12526435.html