DAY11学习笔记

  函数

    命名关键字函数:在定义函数时,*与**之间的参数称之为命名关键字函数。

      特点:在调用函数时,命名关键字参数必须按照key=value的形式传值。

  函数对象

    函数第一类对象:指的是函数的内存地址可以像一个变量值一样去使用。

      变量值可以被引用;变量值可以当做参数传给另外一个函数;变量值可以当做函数返回值;变量值可以当做容器类型的元素。

  函数的嵌套调用:在一个函数内部又调用其他函数。

    定义:在函数内又定义了其他函数。

  名称空间与作用域

    名称空间相关:

      名称空间(Namespaces):指的就是存放名字与值内存地址绑定关系的地方(内存空间)

      名称空间分为三大类:内置名称空间:存放的是python解释器自带的名字。

                       产生:python解释器启动时,产生。

                       销毁:python解释器关闭时,销毁。

                全局名称空间:在顶级定义的名字。

                       产生:执行python程序时,产生。

                       销毁:python程序执行完之后,销毁。

                局部名称空间;在函数内定义的名字。

                       产生:在函数调用时,临时产生。

                       销毁:在函数调用完毕后,则销毁。

        (三种名称空间的产生的先后顺序:内置=>全局=>局部)

        (查找名字的顺序时:从当前位置往外一层一层查找)

          (如果当前在局部名称空间:局部=>全局=>内置)(如果当前在全局名称空间:全局=>内置)

    作用域

      作用域指的是作用范围(!!!作用域关系是在函数定义阶段就已经固定死了,与调用位置无关!!!)

      全局作用域:包含内置与全局名称空间的名字。

        特点:全局存活,全局有效。

      局部作用域:包含局部名称空间的名字。

        特点:临时存活,局部有效。

    闭包函数

      闭:封闭,指的是该函数是定义一个函数内部的函数。

      包:该内部函数包含对外层函数名字的引用。

      函数传值的两种方式:直接以参数的形式传入。

                例:def foo(name):

                    print('hello %s' %name)

                  foo('egon')

                  foo('egon')

                  foo('egon')

                闭包函数。

                例:def outter(name):

                    # name='egon'

                    def foo():

                           print('hello %s' %name)

                    return foo
                  f=outter('egon')

                  # print(f)

                  f()

                  f()

                  f()
                  

                  f1=outter('alex')

                  f1()

                  f1()

                  f1()

猜你喜欢

转载自www.cnblogs.com/lipengjia/p/9708497.html