随笔分类 -  实用的Python编程

《practical python programming》的中文翻译,以意译为主,目录不翻译,只翻译内容。英文原版见:https://github.com/dabeaz-course/practical-python
摘要:目录 | 上一节 (5 Python对象的内部工作原理) | 下一节 (7 高级主题) 6. 生成器 在 Python 语言中,迭代(for 循环)是最常用的编程模式之一。程序执行大量的迭代来处理列表、读取文件、查询数据库......Python 最强大的特性之一就是能够以所谓的“生成器函数(gen 阅读全文
posted @ 2021-03-14 21:17 codists 阅读(49) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (5.1 再谈字典) | 下一节 (6 生成器) 5.2 类和封装 创建类时,通常会尝试将类的内部细节进行封装。本节介绍 Python 编程中有关封装的习惯用法(包括私有变量和私有属性)。 Public vs Private 虽然类的主要作用之一是封装对象的属性和内部实现细节。但是 阅读全文
posted @ 2021-03-13 22:29 codists 阅读(225) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (4.4 异常) | 下一节 (5.2 封装) 5.1 再谈字典 Python 对象系统主要基于字典实现。本节将对此进行讨论。 字典 字典是命名值(named values)的集合。 stock = { 'name' : 'GOOG', 'shares' : 100, 'price 阅读全文
posted @ 2021-03-12 08:47 codists 阅读(236) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (4 类和对象) | 下一节 (6 生成器) 5. Python 对象的内部工作原理 本节介绍 Python 对象的内部工作原理。来自其它语言的程序员通常会发现 Python 的类概念缺乏特性。例如,没有访问控制(access-control)的概念(如:private,prote 阅读全文
posted @ 2021-03-12 00:01 codists 阅读(59) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (4.3 特殊方法) | 下一节 (5 对象模型) 4.4 定义异常 用户可以通过类实现自定义异常: class NetworkError(Exception): pass **异常类始终继承自 Exception ** 它们通常是空类。空类内部使用 pass 表示。 你也可以对异 阅读全文
posted @ 2021-03-10 22:29 codists 阅读(94) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (4.2 继承) | 下一节 (4.4 异常) 4.3 特殊方法 可以通过特殊方法(或者称为"魔术"方法(magic method))自定义 Python 行为的各部分。本节介绍特殊方法的思想。此外,还将讨论动态属性访问和绑定方法。 简介 类可以定义特殊方法。特殊方法对于 Pyth 阅读全文
posted @ 2021-03-09 22:36 codists 阅读(198) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (4.1 类) | 下一节 (4.3 特殊方法) 4.2 继承 继承(inheritance)是编写可扩展程序程序的常用手段。本节对继承的思想(idea)进行探讨。 简介 继承用于特殊化现有对象: class Parent: ... class Child(Parent): ... 阅读全文
posted @ 2021-03-08 18:12 codists 阅读(312) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (3.6 设计讨论) | 下一节 (4.2 继承) 4.1 类 本节介绍 class 语句以及创建新对象的方式。 面向对象编程(OOP) 面向对象编程是一种将代码组织成对象集合的编程技术。 一个对象包括: 数据。属性 行为。方法——应用于对象的函数。 在本课程中,你已经使用了面向对 阅读全文
posted @ 2021-03-07 14:37 codists 阅读(264) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (3 程序组织) | 下一节 (5 Python对象的内部工作原理) 4. 类和对象 到目前为止,我们的程序仅使用了内置的 Python 数据类型。本节,我们介绍类(class)和对象(object)的概念。你将学习 class 语句,该语句允许你创建新的对象。我们还将介绍继承(i 阅读全文
posted @ 2021-03-06 23:21 codists 阅读(112) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (3.5 主模块) | 下一节 (4 类) 3.6 设计讨论 本节,我们重新考虑之前所做的设计决策。 文件名与可迭代对象 考虑以下两个返回相同输出的程序。 # Provide a filename def read_data(filename): records = [] with 阅读全文
posted @ 2021-03-05 19:27 codists 阅读(102) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (3.4 模块) | 下一节 (3.6 设计讨论) 3.5 主模块 本节介绍主程序(主模块)的概念 主函数 在许多编程语言中,存在一个主函数或者主方法的概念。 // c / c++ int main(int argc, char *argv[]) { ... } // java c 阅读全文
posted @ 2021-03-04 23:57 codists 阅读(286) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (3.3 错误检查) | 下一节 (3.5 主模块) 3.4 模块 本节介绍模块的概念以及如何使用跨多个文件的函数。 模块和导入 任何一个 Python 源文件都是一个模块。 # foo.py def grok(a): ... def spam(b): ... import 语句加 阅读全文
posted @ 2021-03-03 22:40 codists 阅读(255) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (3.2 深入函数) | 下一节 (3.4 模块) 3.3 错误检查 虽然前面已经介绍了异常,但本节补充一些有关错误检查和异常处理的其它细节。 程序是如何运行失败的 Python 不对函数参数类型或值进行检查或者校验。函数可以处理与函数内部语句兼容的任何数据。 def add(x, 阅读全文
posted @ 2021-03-02 22:35 codists 阅读(304) 评论(0) 推荐(1) 编辑
摘要:目录 | 上一节 (3.1 脚本) | 下一节 (3.3 错误检查) 3.2 深入函数 尽管函数在早先时候介绍了,但有关函数在更深层次上是如何工作的细节却很少提供。本节旨在填补这些空白,并讨论函数调用约定,作用域规则等问题。 调用函数 考虑以下函数: def read_prices(filename 阅读全文
posted @ 2021-03-01 23:16 codists 阅读(320) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (2.7 对象模型) | 下一节 (3.2 深入函数) 3.1 脚本 在该部分,我们将深入研究编写 Python 脚本的惯例。 什么是脚本? 脚本就是运行和终止一系列语句的程序。 # program.py statement1 statement2 statement3 ... 到 阅读全文
posted @ 2021-02-28 21:52 codists 阅读(300) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (2 处理数据) | 下一节 (4 类和对象) 3. 程序组织 到目前为止,我们已经学习了一些 Python 基础知识并编写了一些简短的脚本。但是,当开始编写更大的程序时,我们会想要有条理地组织这些程序。本节将深入讨论关于函数编写,错误处理以及模块的更多细节。最后,您应该能够编写跨 阅读全文
posted @ 2021-02-27 23:52 codists 阅读(121) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (2.6 列表推导式) | 下一节 (3 程序组织) 2.7 对象 本节介绍有关 Python 内部对象模型的更多详细信息,并讨论一些与内存管理,拷贝和类型检查有关的问题。 赋值 Python 中的许多操作都与赋值或者存储值有关。 a = value # Assignment to 阅读全文
posted @ 2021-02-26 22:30 codists 阅读(171) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (2.5 collections模块) | 下一节 (2.7 对象模型) 2.6 列表推导式 一个常见的任务是处理列表中的项(译注:元素)。本节介绍列表推导式,完成此任务的强大工具。 创建新列表 列表推导式通过将操作应用于序列的每一个元素来创建新列表。 >>> a = [1, 2, 阅读全文
posted @ 2021-02-25 14:37 codists 阅读(327) 评论(0) 推荐(0) 编辑
摘要:目录 | 上一节 (2.4 序列) | 下一节 (2.6 列表推导式) 2.5 collections 模块 collections 模块为数据处理提供了许多有用的对象。本部分简要介绍其中的一些特性。 示例:事物计数 假设要把每只股票的总份额表格化。 portfolio = [ ('GOOG', 1 阅读全文
posted @ 2021-02-24 23:48 codists 阅读(126) 评论(0) 推荐(0) 编辑
摘要:目录| 上一节 (2.3 格式化) | 下一节 (2.5 Collections模块) 2.4 序列 序列数据类型 Python 有三种序列数据类型。 字符串:如 'Hello'。字符串是字符序列 列表:如 [1, 4, 5]。 元组:如 ('GOOG', 100, 490.1)。 所有的序列都是有 阅读全文
posted @ 2021-02-23 22:45 codists 阅读(303) 评论(0) 推荐(1) 编辑