下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
读书 > 编程语言 >Python > Python 3面向对象编程

Python 3面向对象编程

综合评级:★★★★★

定价:79.00

作者:(加)(达斯帝·菲利普斯) 著,肖鹏 常贺 石琳  译

出版社:电子工业出版社

出版日期:2015年7月

页数:364

字数:478000

ISBN:9787121262463

书籍介绍
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。本书通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。本书不是Python 的入门书籍,适合具有Python 基础经验的开发人员阅读。如果你拥有其他面向对象语言的经验,你会更容易理解本书的内容。
相关课程
目录

第1章 面向对象设计

面向对象

对象和类

指定属性和行为

数据描述对象

行为是动作

隐藏细节并且创建公共接口

组合和继承

继承

案例学习

练习

总结

第2章 Python对象

创建Python类

添加属性

让类实际做一些事情

对象的初始化

解释你自己

模块和包

组织模块

谁可以访问我的数据

案例学习

练习

总结

第3章 当对象是相似的

基本继承

扩展内置类

重写和Super

多重继承

钻石的问题

不同的参数集合

多态

案例学习

练习

总结

第4章 异常处理

抛出异常

抛出一个异常

当一个异常产生时发生了什么

异常处理

异常层级

定义自己的异常

异常不是例外

案例学习

练习

总结

第5章 何时使用面向对象编程

把对象当作"对象"来对待

使用property为类中的数据添加行为

property是怎样工作的

装饰器:创建property的另一种方法

何时该使用property属性

管理对象

移除重复的代码

实践一下

或者我们可以使用组合

案例学习

练习

总结

第6章 Python数据结构

空对象

元组和命名元组

命名元组

字典

何时应该使用字典

使用defaultdict

列表

对列表排序

集合

扩展内置数据类型

案例学习

练习

总结

第7章 Python里面向对象的快捷方式

Python内置函数

Len

Reversed

Enumerate

Zip

其他函数

解析

列表解析

集合和字典解析

生成器表达式

生成器

方法重载的另一种选择

默认参数

可变参数列表

参数拆分

函数也是对象

使用函数作为属性

可调用对象

案例学习

练习

总结

第8章 设计模式1

设计模式

装饰器模式

装饰器实例

Python中的装饰器模式

观察者模式

观察者实例

策略模式

策略实例

Python中的策略模式

状态模式

状态实例

状态和策略模式的对比

单件模式

单件的实现方式

模块变量能够模仿单件

模板模式

模板实例

练习

总结

第9章 设计模式2

适配器模式

外观模式

享元模式

命令模式

抽象工厂模式

组合模式

练习

总结

第10章 文件和字符串

字符串

字符串操作

字符串格式化

字符串是Unicode的

可变字节字符串

文件I/O

把它放在上下文

伪造文件

存储对象

定制pickle

序列化web对象

练习

总结

第11章 测试面向对象的程序

为什么要测试

测试驱动开发

单元测试

断言方法

减少样板和清理

组织和运行测试

忽略失败的测试

用py.test测试

一个处理安装和清理的方法

一种完全不同的变量设置方式

用py.test测试跳过

py.test的额外部分

多少测试才算够

案例学习

实现它

练习

总结

第12章 常用Python 3库

数据库访问

引入SQLAlchemy

漂亮的用户界面

TkInter

PyQt

选择一个GUI工具包

XML

ElementTree

Lxml

CherryPy

一个完整的Web堆栈

Jinja模板

CherryPy博客Web应用程序

练习

总结

前言
前言

这本书将向你介绍面向对象范型的术语,通过一步步的例子,专注于面向对象的设计。它将带你从简单的继承开始,这在面向对象程序员工具箱里是很有用的工具之一,到很复杂之一的合作继承。你将能提高、处理、定义以及操作异常。

你将能够把Python面向对象和不是那么面向对象的方面结合起来。通过研究高级的设计模式,你将能够创建可维护的应用程序。你将学习Python复杂的字符串和文件操作以及如何区分二进制和文本数据。将会介绍给你不止一个,而是两个非常强大的自动化测试系统。你将会理解单元测试的喜悦以及创建单元测试是多么简单。你甚至会学习像数据库连接和GUI工具包这样的高级库,以及它们是如何应用面向对象原则的。

这本书讲了什么

第1章,面向对象设计覆盖了重要的面向对象概念。它主要处理关于抽象、类、封装和继承。在建模我们的类和对象时,我们也简要地看了下UML。

第2章,Python对象讨论了类和对象,以及它们是如何在Python中使用的。我们将学习Python对象中的属性和行为,以及把类组织成包和模块。最后我们将看到如何保护我们的数据。

第3章,当对象是相似的让我们从更深层次的视角来看继承。它覆盖了多重继承以及向我们展示了如何从内置来继承。这一章还包括了多态以及鸭子类型。

第4章,异常处理讲解异常和异常处理。我们将学习如何创建自己的异常。它还涉及了把异常用于程序流程控制。

第5章,何时使用面向对象编程主要处理对象,什么时候创建和使用它们。我们将看到如何使用属性来包装数据,以及限制数据访问。这一章也会讨论DRY原则以及如何不重复代码。

第6章,Python数据结构覆盖了数据结构的面向对象特征。这一章主要处理元组、字典、列表和集合。我们也会看一看如何扩展内置对象。

第7章,Python里面向对象的快捷方式顾名思义,在Python中如何省时。我们将看到很多有用的内置函数,然后继续在列表、集合和字典中使用解析。我们将学习关于生成器、方法重载,以及默认参数的内容。我们还会看到如何把函数当成对象来用。

第8章,Python设计模式1 向我们介绍了Python设计模式。然后我们将会看到装饰器模式、观察者模式、策略模式、状态模式、单例模式以及模板模式。这些模式将会和在Python中实现的合适的例子和程序一起讨论。

第9章,Python设计模式2讲解上一章剩下的内容。我们将通过Python中的例子看到适配器模式、外观模式、享元模式、命令模式、抽象模式以及组合模式。

第10章,文件和字符串学习字符串和字符串格式化。也会讨论字节和字节数组。我们也将会学习文件以及如何从文件读取数据和往文件里写数据。我们将学习存储和pickle对象,最后本章会讨论序列化对象。

第11章,测试面向对象的程序以使用测试和为什么测试如此重要开头。重点是测试驱动开发。我们将看到如何使用unittest模块,以及py.test自动化测试套件。最后我们将使用coverage.py来看代码的测试覆盖率。

第12章,常用Python 3库 集中介绍库以及它们在程序构建中的利用率。我们将使用SQLAlchemy来构建数据库,使用TkInter和PyQt开发用户界面。这一章会继续讨论如何构建XML文档以及我们应该如何使用ElementTree和lxml。最后我们将使用CherryPy和Jinja来创建一个Web应用。

对于这本书你需要什么

为了编译运行在本书中提到的例子,你需要下面的软件:

Python 3.0或者更高的版本

py.test

coverage.py

SQLAlchemy

pygame

PyQt

CherryPy

lxml

谁需要这本书

如果你是面向对象编程技术的新手,或者你有基本的Python技巧,并且希望深入他学习如何以及什么时候在Python中正确他应用面向对象编程,这本书适合你。

如果你是一个其他语言的面向对象编程人员,你也会发现这本书是对Python的一个有用的介绍,因为它使用了一些你已经熟悉的术语。

那些寻求迈入Python 3新世界的Python 2程序员也将会发现这本书的好处,但是其实你不需要了解Python 2。

惯例

在这本书中,你将发现一些用于区分不同种类信息的文本风格。这里有一些这些风格的例子,并且介绍了它们的意义。

文本形式的代码会按照下面显示:“我们可以通过使用import语句来访问Python的其他模块”。

一个代码块会像下面这样显示:

class Friend(Contact):

def __init__(self, name, email, phone):

self.name = name

self.email = email

self.phone = phone

当我们希望你对一个代码片段里特殊的部分引起注意的时候,相应的行或者元素会设置成粗体:

class Friend(Contact):

def __init__(self, name, email, phone):

self.name = name

self.email = email

self.phone = phone

任何一个命令行的输入或输出都是下面这样的形式:

>>> e = EmailableContact("John Smith", "jsmith@example.net")

>>> Contact.all_contacts

新的术语或者重要的词将会显示成黑体。例如你在屏幕、菜单和对话框中看到的词,会以文本的形式这样显示:“你每一次点击Roll!按钮的时候,我们会通过这个特性来给标签更新一个新的随机值”。

警告或者重要的笔记将会在一个框里这么显示

小窍门和诀窍会这么显示

读者反馈

我们随时欢迎来自读者的反馈信息。请告诉我们你对本书的评价——你喜欢或者不喜欢的地方。读者的反馈对于我们是非常重要的,这会帮助我们为你创作更有价值的作品。

请将你的反馈意见通过邮件feedback@packtpub.com发送给我们,并在邮件的主题中标明相关图书的名称。

如果你需要一本书并且希望我们的出版相关图书,请在www.packtpub.com用 SUGGEST A TITLE表格发一张纸条给我们或通过电子邮件 suggest@packtpub.com告诉我们。

如果你具有关于某个主题的专业知识,并且有兴趣参与图书的编写,请查看我们的作者指南,网址:www.packtpub.com/authors。

客户支持

你现在是拥有Packt书的尊贵主人,购买本书我们会从以下方面帮助到你。

下载本书的示例代码

你可以通过你在http://www.packtpub.com的账号来下载你购买图书的所有示例代码文件。如果你从其他地方购买的本书,你可以访问http://www.packtpub.com/support 并且注册我们会直接通过电子发邮件给你的文件。

勘误

虽然我们已尽力确保我们内容的准确性,但是错误还是会发生。如果你发现本书的一个错误——文字或者代码错误——如果你能报告给我们,我们将非常感激。通过这样做,你可以把其他读者从挫败中拯救出来并且帮助我们改善这本书的后续版本。如果你发现任何错误,请通过访问http://packtpub.com/support 来报告它们,选择你的书,点击let us know链接,并且输入错误的细节。一旦你的勘误被核实,你提交的将会被接受并且将会把勘误上传到我们的网站,或者在添加到一个已有的勘误列表的相应主题部分。从http://www.packtpub.com/support 选择我们的信息标题将看到任何一个存在的勘误。

盗版

互联网上著作权侵害是在所有媒体中持续的问题。在Packt,我们会非常重视地对版权和许可证的保护。如果你在互联网上发现了对于我们著作的任何形式的任何非法复制,请立即告诉我们地址或者网站名字,以便我们能进行补救措施。

请通过copyright@packtpub.com联系我们,可附带一个可疑链接的盗版材料。

我们非常感谢你在保护我们的作者以及我们能带给你有价值内容的能力方面给予我们的帮助。

问题

如果你对这本书的任何方面有问题,你可以通过questions@packtpub.com联系我们,我们将尽力解决这个问题。

热门图书
推荐新闻
技术文库
论坛推荐