一.昨日内容回顾
函数的进阶
动态传参
*args : 位置参数的动态传参
**kwargs: 关键字参数的动态传参
形参:聚合
实参:打散
顺序:位置参数>*args >默认值 >**kwargs
作用域和名称空间
全局作用域:内置+全局
局部作用域:局部
locals() 查看当前作用域中的名字
globals() 查看全局作用域中的名字
global 把全局的内容引入到局部
nonlocal 在局部,把上一层的变量引入进内部,如果上一层没有,继续上一层
二.今日主要内容
1.第一类对象,,函数名的使用
函数名就是变量名,函数名存储的是函数的内存地址
变量的命名规范:
1.由数字,字母,下划线组成
2.不能是数字开头,更不能是纯数字
3.不能用关键字
4.不要太长
5.要有意义
6.不要用中文
7.区分大小写
8.驼峰或者下划线
2.闭包
闭包:在内层函数中引入外层函数的变量
作用:
1.保护变量不受侵害(javascript)
2.让一个变量常驻内村
3.迭代器
dir() 查看变量能够知执行的方法(函数)
Iterator:迭代器, __iter__(),__next__()
Iterable:可迭代的, __iter__()
for 循环的流程:
it = lst.__iter__()
while 1:
try:
el = it.__next()__()
for循环的循环体
except StopIteration:
break
从迭代器中获取数据的唯一方法:__next__()
三个特征:
1.省内存
2.惰性机制
3.只能往前,不能后退