python3函数进阶

python

1.命名空间和作用域

命名空间

    加载

        内置命名空间

            python解释器自带的变量和函数

            开启python解释器自动加载内置命名空间

        全局命名空间

                程序从头到尾的自定义变量和函数

                从头到尾加载

        局部命名空间

                函数内部的自定义变量和函数(内嵌函数)

                当函数被调用时,创建该函数的局部命名空间,当函数执行结束时,回收命名空间

    取值

        顺序:局部命名空间——>全局命名空间——>内置命名空间

作用域

    全局作用域

        包含:内置命名空间、全局命名空间

    局部作用域

        局部命名空间

    打印全局作用域的值:print(globals())

    打印当前作用域的值:print(locals())

    在函数内部,对全局变量进行修改(自加等),需要加在函数内部加 global关键字定义变量

        对应不可变数据类型局部可以查看全局,不可以修改全局

2.嵌套函数和作用域链

嵌套函数

    函数的调用

    函数的定义

作用域链

    由内到外

nonlocal

    用在嵌套函数中,修改他上一次的局部变量,只用在局部变量

    在内部函数中,修改外部函数的变量

3.函数名的本质

    指向一个内存地址,可以看作是变量

    赋值,既被引用

    当函数的参数、返回值

    可以当容器类型(可变数据类型)的参数

4.闭包

    定义:嵌套函数,并且内部函数调用,外部函数的变量,内部函数是闭包

    判断闭包函数的方法:打印函数名.__closure__,有cell

def f1():

a = 1

def f2():

print(a)

return f2

res = f1()

res()

以上是 python3函数进阶 的全部内容, 来源链接: utcz.com/z/387622.html

回到顶部