python之路---10 *args **kwargs 命名空间 作用域 函数的嵌套

Posted lw1095950124

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之路---10 *args **kwargs 命名空间 作用域 函数的嵌套相关的知识,希望对你有一定的参考价值。

二十八.函数进阶

  1.   "*"  和  "**"

    ① 在形参位置时   都是聚合的作用    

      *args    位置参数→元组

      **kwargs   关键字参数→字典

    混合时顺序为: 位置  , *args ,  默认值 , **kwargs

    ② 在实参位置时    都是打散的作用

      *args      字符串,元组,字典 → 位置参数

      **kwargs     字典 → 关键字参数

  2.名称空间    用来存放名字(变量, 函数名, 类名, 引入的模块名)的

      1. 全局名称空间: 我们在py文件中自己写的变量, 函数.....

      2. 内置名称空间: 我们python解释器提供好的一些内置内容(print, input....)

       3. 局部名称空间: 在我们执行函数的时候.会产生一个局部名称空间.

                放的是: 函数内部的内容(变量, 函数,类...)

    名称空间可能会有无数个, 局部名称空间而言. 相对是独立的.一般互不干扰

  3.作用域

    1). 全局作用域: 内置+全局     

    2). 局部作用域: 局部

    3).  从全局去找局部 -> 找不到

       局部去找全局 -> 可以找到

    4).  globals() 查看全局作用域

       locals() 查看当前作用域

  4.函数的嵌套

    1).查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置

    2).global: 在 局部 引入 全局 的一个变量

    3).nonlocal: 内层函数(在局部作用域)引入外层离他最近的那个变量.

评论帖子的代码:

技术分享图片

以上是关于python之路---10 *args **kwargs 命名空间 作用域 函数的嵌套的主要内容,如果未能解决你的问题,请参考以下文章

Python之路day09+10-函数初识_形参_*args_**kwargs用法

Python学习之路——Day10(线程进程)

python之路36线程相关

python之路--day10-闭包函数

Python之路——多线程

Python全栈之路Day19