zoukankan      html  css  js  c++  java
  • 名称空间与作用域

    1.命名关键字参数
    命名关键字参数:在定义函数时,*后定义的参数,如下所示,称之为命名关键字参数
    特点:1.命名关键字参数必须按照key=value进行传值
    def func(a,b,*,c,d):#其中c/d称之为命名关键字参数
    print(a,b)
    print(c,d)
    func(1,2,c=3,d=4)
     2.混合使用
    形参混用的顺序:位置形参、默认形参、*args、命名关键字形参、**kwargs
     名称空间namespace:存放名字的地方,对栈区的划分
    有了名称空间之后,可以在栈区中存放相同的名字,详细的名称空间
    分为三种:内置名称空间、全局名称空间、局部名称空间
     1.内置名称空间
    存放名字,存放Python解释器中的名字
    存活周期:Python解释器启动则产生,关闭则销毁
    2.全局名称空间
    存放名字,只要不是函数内定义、也不是内置的,剩下的都是全局名称空间的名字
    存活周期:Python文件执行时产生,Python文件运行结束后销毁
    3.局部名称空间
    存放名字,在调用函数时,运行函数体代码过程中产生的函数内的名字
    存活周期:调用函数时存活,函数调用完毕则销毁
     4.名称空间的加载顺序
    内置名称空间》全局名称空间》局部名称空间
    5.名称空间的销毁顺序
    局部名称空间》全局名称空间》内置名称空间
    6.名字的查找优先级:当前所在位置向上一层一层查找
    内置名称空间
    全局名称空间
    局部名称空间
    如果当前在局部名称空间:
    局部名称空间-》全局名称空间-》内置名称空间
     示范:如果再局部想要修改全局的名字对应的值(不可变类型),需要用global
     nonlocal(了解): 修改函数外层函数包含的名字对应的值(不可变类型)
  • 相关阅读:
    linux解压 tar命令
    kernel部分数据结构列表二(超级块)
    Linux QQ 的安装
    怎么把uclinux下载到EPCS中
    CentOS 5 上安装git
    【转】Linux下使用Evolution收发Email
    几个采样代码的对比
    NIOS II 安装uclinux的硬件要求
    S3C2440 Timer初始化方法
    基于NIOS II的液晶显示设计——ucGUI移植
  • 原文地址:https://www.cnblogs.com/mayrain/p/12526634.html
Copyright © 2011-2022 走看看