day2python学习

1.昨日内容和作业讲解

  1. 函数是以功能为导向,一个函数一个功能,减少重复代码,提高代码可读性

    • def func():

      函数体

  2. 函数的调用:调用一次执行一次

  3. 函数的返回值: return

    • 终止函数

    • return 单个值

    • return 多个值:按照元组的返回

  4. 函数的参数:

    • 实参角度: 位置参数,关键字参数,混合参数

    • 形参角度:位置参数,默认参数

2.今日内容

  1. 如何在工作中不让别人看出你是培训出来的?

    • 第一天安装环境等等,小白各种问.

    • 项目需求不清晰也不敢问.

    • 自主学习,自己解决问题的能力.

  2. 形参角度:

    • 万能参数

      • 函数定义时,*代表聚合,他将所有的位置参数聚合成一个元组,赋值给了args

      • def func(*args):
           pass
        func(1, 2, 3)
        func(*[1, 2, 3], *[22, 11]) #相当与func(1, 2, 3, 22, 11)
    • **的魔性用法

      • **将所有关键字聚合到一个字典中,将这个字典赋值给了kwargs

      • 一般形参先放位置参数,然后放*args,再放默认参数,最后放**kwargs

      • def get_data(a, b, *args, c='1', **kwargs):
           pass
      • def get_data(**kwargs):
           pass
        get_data(a = '1', b = '2')

        def get_data(*args, **kwargs):
           pass
        get_data(**{a:"1"}, **{b:"2"}) # 等同于get_data(a = '1', b = '2')
    • 仅限关键字参数

      • d为仅限关键字参数,设定之后必须传值

      • def get_data(a, b, *args, c='1', d, **kwargs):
           pass
    • 形参的顺序

      • 位置参数, *args, 默认参数, 仅限关键字参数, **kwargs

    • **的含义

      • 在形参中为聚合,在实参中为打散

  3. 名称空间

    1. 全局名称空间,局部....

      • 局部名称空间(临时名称空间):

        • image-20200929002344402

      • 1

      • 内置名称空间

      • image-20200929002704578

      • 全局名称空间:

        • 1

        • image-20200929001838141

        • image-20200929001410004

    2. 加载顺序,取值顺序

      • 加载顺序:内置名称空间---全局名称空间---局部名称空间(函数执行时)

      • 取值顺序:就近原则,单项不可逆

        • (从局部找时)局部名称空间---全局名称空间---内置名称空间

          • image-20200929004306367

    3. 作用域

      • 全局作用域:包含内置名称空间,全局名称空间

      • 局部作用域: 局部名称空间,可以引用全局作用域的变量(但是不能改变)

        • 局部作用域不能改变全局作用域的变量,因为当Python解释器读取到局部作用域时发现了你对一个变量进行修改的操作,解释器会认为你在局部已经定义过了这个局部变量,他就从局部找这个局部变量,就会报错.

  4. 函数的嵌套(高阶函数)

    • image-20200929010837219

    • 1

    • 1

    • 1

    • 1

  5. 内置函数: globals locals

    • globals():返回的是字典,字典里的键值对: 全局作用域里的所有内容

      • 函数

        • image-20201004150818991

      • 结果

        • image-20201004151014962

    • locals():返回的是字典,字典里的键值对: 当前作用域里的所有内容

      • 函数

        • image-20201004151129778

      • 结果

        • image-20201004151113429

  6. 关键字: nonlcal global

3.今日总结

  1. 参数

    • 万能参数

    • 仅限关键字参数

    • 参数的顺序

    • *的应用:聚合, 打散

  2. 名称空间:作用域, 取值顺序, 加载顺序

  3. 高阶函数: 执行顺序

  4. globals()和locals()

posted @ 2020-10-05 10:31  IATKOM  阅读(61)  评论(0)    收藏  举报