函数,闭包,装饰器
函数:(优先级:关键字参数,默认参数,无命名参数,有命名参数)
高阶函数的性质:
函数名可以进行赋值因为它是变量
函数可以当作函数的返回值进行返回
参数:
关键字参数可以不按照位置来写
位置参数不可以交换位置
不定长参数(无命名参数):*arg 返回元组
有命名参数:**kwarg 返回字典
默认参数:必须跟在最后。
如果就想要传入一个字典参数可以加**{}
装饰器:
函数可以当作函数的返回值进行返回
return的作用: 结束函数、返回值(如果十多个对象返回一个元组)
函数的作用域:
L:local 局部作用域指函数中定义的变量。
E:enclosing 嵌套的父级函数的局部作用域,既包含函数的上级函数的作用域,但不是全局的。
G:globa 全局变量,就是模块级别的变量。
B:built-in 系统固定模块里面的变量,比如int,bytearray等。
搜索变量的优先级:局部作用域>外层作用域>当前模块全局>python内置作用域。 也就是LEGB
函数有自己的作用域。
+局部作用域不能修改全局作用域的值。或者告诉局部我这个值是全局的用关键字global
在enclosing 用nonlocal 配合修改而使用。
递归函数:
1.调用自身函数。
2.有一个结束条件
3.效率低
4.但凡递归可以写的,循环都可以写。
关于闭包:(闭包是一种现象)
内部函数+定义函数时的一个环境
浙公网安备 33010602011771号