函数的进阶!

动态参数

当传给函数的参数很多,不定个数的时候,就可以用*args , **kwargs  接收,

arge是元祖形式,接收除去键值对以外的所有参数,

kwargs接收的只是键值对的参数,并且保存在字典中。

命名空间

代码运行初,创建的存储   ‘变量名与值的关系’  的空间叫 全局命名空间。

在函数运行中 开辟的临时空间叫  局部命名空间。

内置命名空间中存放了python解释器为我们提供的名字

加载顺序   :  内置 ---->  全局  ---->  局部

取值顺序   :  从小到大寻找

作用域  

全局作用域:包含内置名称空间、全局名称空间,在整个文件的任意位置都能被引用、全局有效

局部作用域:局部名称空间,只能在局部范围生效

global

  1,声明一个全局变量。

  2,在局部作用域想要对全局作用域的全局变量进行修改时,需要用到 global(限于字符串,数字)。

       #########   对可变数据类型(list,dict,set)可以直接引用不用通过global。  ########

nonlocal:

  1,不能修改全局变量。

  2,在局部作用域中,对父级作用域(或者更外层作用域非全局作用域)的变量进行引用和修改,并且引用的哪层,从那层及以下此变量全部发生改 变。

函数的本质

函数名本质上就是函数的内存地址。

1,可以被引用

2,可以被当做容器类型的元素

3,可以被当做函数的参数和返回值

猜你喜欢

转载自www.cnblogs.com/zico/p/9489777.html
今日推荐