Python iteration

Python 的 迭代协议 (iteration protocol):

请注意 术语 iterator 和 术语 iterable 的区别:

所谓 iterable, 顾名思义,就是可迭代的。什么对象是可迭代的 ? 就是支持 iter 函数调用 (参考 python built-in function : iter)的对象,执行该函数调用,会返回一个 iterator 迭代器对象 (object)。

iterator 迭代器对象 (object),一定包含 __next__ 方法,或者说支持 next 函数调用 (同样参考 python built-in function: next) ,可以递进到下一个值 (这里不知道怎么翻译比较好 , advance to a next result),并在结果序列的末尾抛出 StopIteration 异常,那么这个对象是 迭代器 (iterator)

Continue reading “Python iteration”

Python Object

这是我在看 “Learning Python 5 edition” 感受最深刻的一点: everything is object, the type of an object is an object of type type

学过 C 的读者可以将所有 variable 视为指向内存中一个 Object 的 void * 类型指针,指针即引用(reference)。这样 variable 就可以是 C 语言意思上任意类型了,但我们必须指出 , type 是说 object 的 type, variable 没有 type 的说法。 还有 immutable object 和 mutable object 的不同千万别混淆了。

Continue reading “Python Object”