函数的动态传参
*args 动态接收所有位置参数
**kwargs 动态接收关键字参数
顺序:
位置参数, *args, 默认参数, **kwargs
def func(*args, **kwargs): 可以接收任何参数
pass
global和nonlocal
global: 在函数内部引入全局变量.
nonlocal: 在函数内部. 内层函数访问外层函数中的局部变量
globals() 查看全局作用域中的名字
locals() 查看当前作用域中的名字
1, 函数名的应用,第一类对象
函数名可以像变量一样进行使用
1.赋值
2.作为list元素
3.作为参数
4.作为返回值
2, 闭包
内部函数访问外部函数的局部变量.
好处:
1.安全
2.常驻内存. 提高效率
3, 迭代器
可迭代对象(Iterable):内部包含__iter__().
迭代器(Iterator): 内部含有__iter__() __next__()
str, list, tuple, set, dict
f, range
迭代器的特点:
1.省内存
2.惰性机制
3.只能向前.