摘要:
目录 | 上一节 (6.1 迭代协议) | 下一节 (6.3 生产者/消费者) 6.2 自定义迭代 本节探究如何使用生成器函数自定义迭代。 问题 假设你想要自定义迭代模式。 例如:倒数: >>> for x in countdown(10): ... print(x, end=' ') ... 10 阅读全文
摘要:
目录 | 上一节 (5.2 封装) | 下一节 (6.2 自定义迭代) 6.1 迭代协议 本节将探究迭代的底层过程。 迭代无处不在 许多对象都支持迭代: a = 'hello' for c in a: # Loop over characters in a ... b = { 'name': 'Da 阅读全文
摘要:
目录 | 上一节 (5 Python对象的内部工作原理) | 下一节 (7 高级主题) 6. 生成器 在 Python 语言中,迭代(for 循环)是最常用的编程模式之一。程序执行大量的迭代来处理列表、读取文件、查询数据库......Python 最强大的特性之一就是能够以所谓的“生成器函数(gen 阅读全文
摘要:
目录 | 上一节 (5.1 再谈字典) | 下一节 (6 生成器) 5.2 类和封装 创建类时,通常会尝试将类的内部细节进行封装。本节介绍 Python 编程中有关封装的习惯用法(包括私有变量和私有属性)。 Public vs Private 虽然类的主要作用之一是封装对象的属性和内部实现细节。但是 阅读全文
摘要:
目录 | 上一节 (4.4 异常) | 下一节 (5.2 封装) 5.1 再谈字典 Python 对象系统主要基于字典实现。本节将对此进行讨论。 字典 字典是命名值(named values)的集合。 stock = { 'name' : 'GOOG', 'shares' : 100, 'price 阅读全文
摘要:
目录 | 上一节 (4 类和对象) | 下一节 (6 生成器) 5. Python 对象的内部工作原理 本节介绍 Python 对象的内部工作原理。来自其它语言的程序员通常会发现 Python 的类概念缺乏特性。例如,没有访问控制(access-control)的概念(如:private,prote 阅读全文
摘要:
目录 | 上一节 (4.3 特殊方法) | 下一节 (5 对象模型) 4.4 定义异常 用户可以通过类实现自定义异常: class NetworkError(Exception): pass **异常类始终继承自 Exception ** 它们通常是空类。空类内部使用 pass 表示。 你也可以对异 阅读全文
摘要:
目录 | 上一节 (4.2 继承) | 下一节 (4.4 异常) 4.3 特殊方法 可以通过特殊方法(或者称为"魔术"方法(magic method))自定义 Python 行为的各部分。本节介绍特殊方法的思想。此外,还将讨论动态属性访问和绑定方法。 简介 类可以定义特殊方法。特殊方法对于 Pyth 阅读全文
摘要:
目录 | 上一节 (4.1 类) | 下一节 (4.3 特殊方法) 4.2 继承 继承(inheritance)是编写可扩展程序程序的常用手段。本节对继承的思想(idea)进行探讨。 简介 继承用于特殊化现有对象: class Parent: ... class Child(Parent): ... 阅读全文
摘要:
目录 | 上一节 (3.6 设计讨论) | 下一节 (4.2 继承) 4.1 类 本节介绍 class 语句以及创建新对象的方式。 面向对象编程(OOP) 面向对象编程是一种将代码组织成对象集合的编程技术。 一个对象包括: 数据。属性 行为。方法——应用于对象的函数。 在本课程中,你已经使用了面向对 阅读全文