一、动态参数:
动态参数是形参的一类
分为:动态位置参数(* + 函数名)表示
调用后返回的是元祖
动态关键字参数(** + 函数名)表示
形参的排列顺序:
位置参数 > 动态位置参数 > 默认值参数 > 动态关键字参数
如果 一个函数中 既有动态位置参数(*args) 又有 动态关键字参数(**kwargs),那么他将会是无敌的参数。
二、命名空间
1、分类
内置命名空间:python解释器中,内部存在的,如list,dict,tuple,int等等,已经定义好的,就是内置命名空间。
全局命名空间:我们在py文件中,直接声明,且在函数外部的就是全局命名空间。
局部命名空间:在函数内部,进行声明的变量,都在内部命名空间。
2、加载顺序:
内置命名空间=====》全局命名空间=====》局部命名空间
3、取值顺序:
局部命名空间=====》全局命名空间=====》内置命名空间
三、作用域
1、定义:作用域就是作用范围。
2、分类:
全局作用域: 包含内置命名空间+全局命名空间 ,在整个文件的任何位置都可以使用(遵循从上到下逐行执行)
局部作用域:在函数内部使用
3、globals( )函数 用来查看全局作用域中的内容。
locals()函数用来查看局部作用域中的内容。
四、函数的嵌套
五、global 和 nolocal
global 表示 调用全局作用域中的变量,而不再使用局部作用域中的变量。同时可以改变局部作用中变量的值。
nolocal 表示 在局部作用域中,引入上一级的变量,但不是全局变量。