python day- 10 动态参数 函数的嵌套 命名空间和作用域 global和nolocal

一、动态参数:

      动态参数是形参的一类

      分为:动态位置参数(* + 函数名)表示

         

          调用后返回的是元祖

         动态关键字参数(** + 函数名)表示

          

         形参的排列顺序:

            位置参数     >   动态位置参数    >    默认值参数     >     动态关键字参数

         如果 一个函数中 既有动态位置参数(*args)  又有 动态关键字参数(**kwargs),那么他将会是无敌的参数。

二、命名空间 

      1、分类

        内置命名空间:python解释器中,内部存在的,如list,dict,tuple,int等等,已经定义好的,就是内置命名空间。

        全局命名空间:我们在py文件中,直接声明,且在函数外部的就是全局命名空间。

        局部命名空间:在函数内部,进行声明的变量,都在内部命名空间。

      2、加载顺序:

        内置命名空间=====》全局命名空间=====》局部命名空间

      3、取值顺序:

        局部命名空间=====》全局命名空间=====》内置命名空间

三、作用域

      1、定义:作用域就是作用范围。

      2、分类:

          全局作用域:  包含内置命名空间+全局命名空间  ,在整个文件的任何位置都可以使用(遵循从上到下逐行执行)

          局部作用域:在函数内部使用

      3、globals( )函数 用来查看全局作用域中的内容。

        locals()函数用来查看局部作用域中的内容。

四、函数的嵌套

       

五、global 和 nolocal

      global 表示 调用全局作用域中的变量,而不再使用局部作用域中的变量。同时可以改变局部作用中变量的值。

      

      nolocal 表示 在局部作用域中,引入上一级的变量,但不是全局变量。

      

                 

        

原文地址:https://www.cnblogs.com/wf123/p/9305619.html