1.迭代器和生成器的区别
- 迭代对象:实现了
__iter__
方法或__getitem__
的方法 - 迭代器:实现了
__iter__
和__next__
方法的对象 - 生成器:实现了yield的函数特殊场景,元祖推导式
2.生成器如何激活
- next()
- generator.send(none)
3.函数参数
- 函数定义角度:必选参数,可选参数(默认参数)
- 函数调用角度:位置参数,关键字参数
- 可变参数:,*arg接收到所有的位置参数,元祖,**kwargs接收所有关键字参数,字典
注意:
函数参数传递的是实际对象的内存地址,如果参数引用的是可变对象,在函数内部修改后,就算没有把修改后的值返回回去,外面的值其实也改变了