zoukankan      html  css  js  c++  java
  • python3函数进阶

    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()
  • 相关阅读:
    sas 基础(1)-关于数据格式的SAS函数
    sas 命令行打开SAS IDE 的代码
    获取指定数据集观测数
    sas spawner
    sas 解析json
    正则表达式(更新中。。。)
    async await的简单使用
    element ui只输入数字校验
    element ui中表单循环项的校验
    微信小程序template和组件
  • 原文地址:https://www.cnblogs.com/wt7018/p/10822727.html
Copyright © 2011-2022 走看看