• 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: 内层函数(在局部作用域)引入外层离他最近的那个变量.

    评论帖子的代码:

  • 相关阅读:
    【水题递归】【HDU2044】我大沙茶了
    【小知识+小细节】不断更新ing...
    【数学三角恒等变幻】【HDU2552】三足鼎立
    【set&&sstream||floyed判环算法】【UVa 11549】Calculator Conundrum
    【CCTYPE函数系列】
    【输入输出挂】【Uva11462】Age Sort
    【树形贪心】【UVA1267】Network
    【贪心】【uva11520】 Fill the Square
    动态规划uva12563
    紫书ch9 uva12563
  • 原文地址:https://www.cnblogs.com/sc-1067178406/p/10085115.html
Copyright © 2020-2023  润新知