迭代器是类对象,生成器是函数
当一个函数中包含 yield 关键字时,Python 会自动为这个函数生成 __iter__ 和 __next__ 方法
自定义多迭代类型
raise (StopIteration)这段代码场景
为什么iter(c1)就会调用__getitem__,iter函数不是自动调用对象得__iter__方法吗
报错啦:TypeError: __iter__()missing 1 required positional argument: 'index'
python打包拆包
纯 Python 内置序列类型切片都是返回新对象
类属性/方法共享,实例属离 —— 这是 Python 对象模型的设计初衷
BNF/语法手册
python中私有不能访问是指什么
实例属性能继承?
Python 里: 任何非零整数(包括负数)都当作 True 只有整数 0 被当作 False
立刻向前滑动补位,这就是“塌缩”
字符串可以切片赋值?
定义学生选修课程的关系模式如下:
解题1----
自定义类如果用索引或者slice访问,只能在__getitem__()里面套用list等基本类型来取值吗,这不算是实现了__getitem__吧,不还是list自身取值吗,外面套了层壳
L[0] 和 L[0:2]/L[slice(0,2)] 在 CPython 底层走的是两条完全不同的代码路径
Python 中,序列(如 list、tuple、str 等)之所以可以通过索引取值,是因为它们实现了 __getitem__ 方法