python 函数(2)


 

函数进阶
	一、函数参数--动态传参
		动态参数必须在位置参数的后面
			1、动态接收位置参数*args
				接受的数据类型为元组( , )
			2、动态接受关键字参数**kwargs
		动态传参顺序
			位置参数 > 动态参数* > 默认值参数>**关键字动态传参
		*,**
			形参: 聚合(接受元组合)
			实参:打散
	二、命名空间
		1、定义
			我们给存放名字和值的关系的空间起名为命名空间
		2、分类
			1、内置命名空间:存在python解释器中,自带的装在内置函数名的空间
			2、全局命名空间:我们直接在py文件中,创建的变量名和函数名都属于全局命名空间
			3、局部名空间:在函数内部申明的变量或者函数内部的函数名都属于局部命名空间
		3、加载顺序
			1、加载顺序:内置命名空间->全局命名空间->局部名空间
			2、取值顺序:局部命名空间->全局命名空间-> 内置命名空间
		4、作用域	
			1、全局作用域:全局命名空间+内置命名空间
				globals( )查看全局作用域中的内容
			2、局部作用域:局部命名空间
				locals( )查看打的作用域中的内容,既可以查看全局,也可以查看局部作用域
	三、函数的嵌套
		定义:就是函数内部中定义了其他的函数
	四、关键字global和nonlocal
		global  变量名
			1、如果全局变量中存在该变量,则将该变量引入局部,可以进行赋值操作
			2、如果不存在,则在局部变量中直接创建该变量,并升华为全局变量
		nonlocal 变量名(仅在局部中讯在变量)
			在局部命名空间中,先往上一层寻找变量,找到就引入,没找到就继续往上上层寻找...最后没找到就报错

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号