具体描述
作者简介
Dusty Phillips,is a Canadian software developer and author currently living in Seattle, Washington. He has been active in the open source community for a decade and a half and programming in Python for nearly all of it. He cofounded the popular Puget Sound Programming Python meetup group; drop by and say hi if you're in the area.
目录信息
Chapter 1: Object-oriented Desiqn
Introducing object-oriented
Objects and classes
Specifying attributes and behaviors
Data describes objects
Behaviors are actions
Hiding details and creating the public interface
Composition
Inheritance
Inheritance provides abstraction
Multiple inheritance
Case study
Exercises
Summary
Chapter 2: Objects in Python
Creating Python classes
Adding attributes
Making it do something
Talking to yourself
More arguments
Initializing the object
Explaining yourself
Modules and packages
Organizing the modules
Absolute imports
Relative imports
Organizing module contents
Who can access my data?
Third-party libraries
Case study
Exercises
Summary
Chapter 3: When Objects Are Alike
Basic inheritance
Extending built-ins
Overriding and super
Multiple inheritance
The diamond problem
Different sets of arguments
Polymorphism
Abstract base classes
Using an abstract base class
Creating an abstract base class
Demystifying the magic
Case study
Exercises
Summary
Chapter 4: Expecting the Unexpected
Raising exceptions
Raising an exception
The effects of an exception
Handling exceptions
The exception hierarchy
Defining our own exceptions
Case study
Exercises
Summary
Chapter 5: When to Use Object-oriented Programming
Treat objects as objects
Adding behavior to class data with properties
Properties in detail
Decorators - another way to create properties
Deciding when to use properties
Manager objects
Removing duplicate code
In practice
Case study
Exercises
Summary
Chapter 6: Python Data Structures
Empty objects
Tuples and named tuples
Named tuples
Dictionaries
Dictionary use cases
Using defaultdict
Counter
Lists
Sorting lists
Sets
Extending built-ins
Queues
FIFO queues
LIFO queues
Priority queues
Case study
Exercises
Summary
Chapter 7: Python Object-oriented Shortcuts
Python built-in functions
The len() function
Reversed
Enumerate
File I/O
Placing it in context
An alternative to method overloading
Default arguments
Variable argument lists
Unpacking arguments
Functions are objects too
Using functions as attributes
Callable objects
Case study
Exercises
Summary
Chapter 8: Strings and Serialization
Strings
String manipulation
String formatting
Escaping braces
Keyword arguments
Container Iookups
Object Iookups
Making it look right
Strings are Unicode
Converting bytes to text
Converting text to bytes
Mutable byte strings
Regular expressions
Matching patterns
Matching a selection of characters
Escaping characters
Matching multiple characters
Grouping patterns together
Getting information from regular expressions
Making repeated regular expressions efficient
Serializing objects
Customizing pickles
Serializing web objects
Case study
Exercises
Summary
Chapter 9: The Iterator Pattern
Design patterns in brief
Iterators
The iterator protocol
Comprehensions
List comprehensions
Set and dictionary comprehensions
Generator expressions
Generators
Yield items from another iterable
Coroutines
Back to log parsing
Closing coroutines and throwing exceptions
The relationship between coroutines, generators, and functions
Case study
Exercises
Summary
Chapter 10: Python Design Patterns I
The decorator pattern
A decorator example
Decorators in Python
The observer pattern
An observer example
The strategy pattern
A strategy example
Strategy in Python
The state pattern
A state example
State versus strategy
State transition as coroutines
The singleton pattern
Singleton implementation
The template pattern
A template example
Exercises
Summary
Chapter 11: Python Design Patterns II
The adapter pattern
The facade pattern
The flyweight pattern
The command pattern
The abstract factory pattern
The composite pattern
Exercises
Summary
Chapter 12: Testing Object-oriented Programs
Why test?
Test-driven development
Unit testing
Assertion methods
Reducing boilerplate and cleaning up
Organizing and running tests
Ignoring broken tests
Testing with py.test
One way to do setup and cleanup
A completely different way to set up variables
Skipping tests with py.test
Imitating expensive objects
How much testing is enough?
Case study
Implementing it
Exercises
Summary
Chapter 13: Concurrency
Threads
The many problems with threads
Shared memory
The global interpreter lock
Thread overhead
Multiprocessing
Multiprocessing pools
Queues
The problems with multiprocessing
Futures
AsynclO
AsynclO in action
Reading an AsynclO future
AsynclO for networking
Using executors to wrap blocking code
Streams
Executors
Case study
Exercises
Summary
Index
· · · · · · (收起)
读后感
前5章是些Python的基础知识,用过Python2的人应该可以直接跳过。而后开始讲解数据结构和设计模式,给了我很多启发。Python这样灵活的语言,在设计方面确实会和其他语言有些许不同。最后的三章阐述了一些细节的问题,尤其是最后一章,列举了很多流行的第三方库。 总的来说,是一...
内容:一位python初学者,知道python语法,会用python写比helloworld复杂一些的代码,就可以看这本书了。这本书循循善诱,教如何用python进行面向对象编程,方法很Pythonic,而不仅仅是python的class。每一章后面的案例也是蛮有意思的。讲解的过程中会把每一次改进用黑...
这本书花了不到2天时间看过第一遍。可能是面向对象的主题原本就不好写,我从书中得到的并不是很多,它的面向对象知识没有《Python核心编程》写的详细,设计模式没有《精通Python设计模式》说的好,而测试、多线程等的章节,基本可以忽略...... 硬件方面,书的印刷纸张并不好。 ...
内容:一位python初学者,知道python语法,会用python写比helloworld复杂一些的代码,就可以看这本书了。这本书循循善诱,教如何用python进行面向对象编程,方法很Pythonic,而不仅仅是python的class。每一章后面的案例也是蛮有意思的。讲解的过程中会把每一次改进用黑...
内容:一位python初学者,知道python语法,会用python写比helloworld复杂一些的代码,就可以看这本书了。这本书循循善诱,教如何用python进行面向对象编程,方法很Pythonic,而不仅仅是python的class。每一章后面的案例也是蛮有意思的。讲解的过程中会把每一次改进用黑...
用户评价
对于我这样一位有着一定Python基础,但对面向对象编程(OOP)的理解还停留在初级阶段的开发者来说,这本书的出现无疑是一场及时雨。我常常在项目中遇到需要构建复杂数据结构和交互逻辑的时候,感到力不从心,总是在如何优雅地组织代码、如何让代码更具扩展性方面感到困扰。我了解到,面向对象编程正是解决这些问题的关键所在。在过去的学习经历中,我尝试过阅读一些中文的OOP教程,但总觉得不够深入,或者在某些细节上的解释不够清晰。我对这本书的英文原版和影印版形式感到非常兴奋,这意味着我能够直接接触到作者最原始的思想和最精确的表述。我希望通过这本书,能够彻底理解类、对象、封装、继承、多态等核心概念,并掌握如何在Python中运用这些概念来设计和实现高质量的软件。我特别关注的是书中是否会提供一些实际的应用案例,能够展示如何利用OOP的原理来构建可维护、可扩展、易于测试的Python应用程序。例如,在开发Web应用、数据科学项目或者图形用户界面(GUI)时,OOP的应用场景非常广泛,我希望这本书能够提供一些实用的指导和启发,帮助我将理论知识转化为实际的开发能力。
我是一个对编程充满热情,但入门不久的学习者。在学习Python的过程中,我发现面向对象编程(OOP)是一个绕不开的概念,但它也常常是我理解上的一个瓶颈。我经常看到别人写的代码使用了类和对象,但我自己尝试去模仿时,总感觉抓不到核心。我希望这本书能够成为我学习OOP的“启蒙书”,它需要用最浅显易懂的语言,将复杂的OOP概念解释清楚。我之所以选择了这本书的英文影印版,是因为我听说英文原版在讲解逻辑和术语的精确性上通常更胜一筹,而且我希望提前锻炼自己的英文阅读能力。我特别希望书中能够提供大量的、从易到难的示例代码,并且这些代码能够一步步地展示如何从一个初步的想法,逐步构建出一个完整的、面向对象的Python程序。我期待这本书能够让我明白,为什么我们需要OOP,OOP能为我们带来什么好处,以及如何在实际编程中灵活地运用它。这本书的出现,让我对攻克OOP这个难关充满了信心,我渴望从中学习到真正实用的编程技巧。
我是一名在校的计算机科学专业的学生,目前正在学习Python语言,并且即将开始接触面向对象编程(OOP)这部分内容。在课堂上,老师虽然讲解了OOP的基本概念,但我总觉得理论性太强,有些抽象,难以真正理解其在实际开发中的意义和价值。我的目标是不仅要通过考试,更重要的是能够真正掌握这门技术,为将来的编程实践打下坚实的基础。这本书的英文影印版引起了我的极大兴趣。我深信,阅读原版书籍能够帮助我更准确地理解那些专业术语的细微差别,避免因为翻译的局限性而产生的理解偏差。我希望这本书能够以一种清晰、易懂的方式,循序渐进地引导我掌握OOP的核心思想,包括如何设计类,如何创建对象,如何运用继承来实现代码复用,如何利用多态来提高代码的灵活性。我尤其期待书中能够提供丰富的代码示例,并且这些示例能够覆盖多种不同的应用场景,让我能够直观地看到OOP是如何在实际项目中发挥作用的。此外,我希望这本书不仅仅是理论的讲解,更能够提供一些关于如何进行面向对象设计的思考方法和最佳实践,帮助我培养良好的编程习惯和设计能力。
这本书的封面设计我非常喜欢,那种沉稳而又不失活力的蓝色调,搭配简洁的字体,第一眼就给人一种专业且易于亲近的感觉。在拿到这本书之前,我其实已经接触过一些Python的入门教程,但总觉得在掌握面向对象编程(OOP)这个概念上,还是有些模棱两可。我的编程经验主要集中在过程式和函数式编程的范畴,对于类、对象、继承、多态这些术语,虽然在理论上有所了解,但总感觉隔靴搔痒,无法真正将其灵活运用到实际的项目开发中。我渴望的是能够系统性地理解OOP的精髓,并学会如何在Python中高效地实现它。这本书的副标题“影印版”和“英文原版”让我对内容的权威性和深度有了更高的期待。我希望它能提供原汁原味的学术思想和最前沿的实践技巧,而不是经过层层转译后可能产生的理解偏差。翻开第一页,那清晰的排版和精心设计的代码示例,就让我对接下来的学习充满了信心。我特别期待能够学习到如何通过OOP来组织和管理复杂的Python项目,让代码结构更加清晰,可维护性更强,并且能够有效地实现代码的重用。这本书的出现,就像在我迷茫的编程之路上点亮了一盏明灯,我迫不及待地想深入其中,去探索Python OOP的无限可能。
我是一名技术经理,负责管理一个Python开发团队。近年来,随着业务的快速发展,我们团队在项目规模和复杂度上都面临着前所未有的挑战。我一直致力于提升团队的整体开发效率和代码质量,而我坚信,建立一种统一的、高质量的面向对象编程(OOP)实践是关键。我选择这本书的英文影印版,是因为我希望能够获取最前沿、最权威的OOP知识,并将其引入到团队的开发流程中。我期待这本书能够提供一些关于如何设计和构建可维护、可扩展、高内聚、低耦合的Python应用程序的深度指导。我特别关注书中是否会涉及一些关于团队协作和代码规范的建议,例如如何制定统一的类设计原则,如何进行有效的代码评审,以及如何利用OOP来促进代码的重用和减少重复劳动。我希望这本书能够成为我们团队学习和实践OOP的“圣经”,帮助我们共同提升项目的质量和开发效率。这本书的出现,为我提供了一个宝贵的资源,能够帮助我带领团队向更高的目标迈进。
我是一名业余的Python爱好者,平时喜欢用Python来解决一些生活中的小问题,或者开发一些有趣的个人项目。我发现,随着项目复杂度的增加,如果没有良好的组织结构,代码会变得越来越难以管理。我听说面向对象编程(OOP)是解决这个问题的有效方法,但相关的教程对我来说总是显得有些深奥。这本书的“影印版(英文版)”的描述,让我觉得它可能更适合有一定学习意愿但基础不那么扎实的读者。我期待这本书能够用一种更加平易近人的方式,来讲解OOP的核心概念,并且提供一些贴近生活的、有趣的应用案例。我希望通过学习这本书,能够掌握如何将我的想法转化为面向对象的Python程序,例如如何设计一个简单的图书管理系统,或者一个音乐播放器。我非常注重学习的乐趣和实践性,所以如果书中能够包含一些互动式的练习,或者鼓励我去动手尝试,那对我来说会非常有帮助。这本书的出现,让我对学习OOP又燃起了新的希望,我渴望能够用OOP让我的Python项目变得更“智能”、更有条理。
我是一名资深的Python开发者,长期以来一直致力于构建可扩展、可维护的大型软件系统。在我的职业生涯中,我深刻体会到面向对象编程(OOP)在软件工程中的重要性,它不仅仅是一种编程范式,更是一种思维方式,能够帮助我们以一种更加结构化、模块化的方式来思考和解决问题。然而,尽管我对Python的语法非常熟悉,但我仍然认为在OOP的精髓和实践方面,还有进一步提升的空间。我一直在寻找能够提供更深层次洞察和更高级实践的书籍,而这本书的“影印版(英文版)”立刻吸引了我的注意。我期待这本书能够提供一些关于如何在高层次上进行面向对象设计的见解,例如如何构建清晰的类层次结构,如何设计灵活的接口,以及如何运用设计模式来解决常见的软件架构问题。我特别关注书中是否会讨论Python在OOP实现上的独特之处,以及如何利用Python的特性来写出更符合Pythonic风格的面向对象代码。我希望这本书能够为我带来新的启发,帮助我将我的Python开发能力提升到一个新的境界,能够自信地应对更复杂的项目挑战。
作为一名曾经使用过Java和C++等面向对象语言的开发者,我对OOP的概念并不陌生。然而,Python作为一种动态类型的脚本语言,其OOP的实现方式与静态类型语言有着显著的差异。我一直想深入了解Python是如何在不失灵活性的同时,依然能够实现强大的OOP能力的。这本书的英文影印版,让我觉得它能够更精准地捕捉到Python OOP的语言特性和设计理念。我希望这本书能够详细解释Python中类、对象、继承、多态、封装等核心概念,并与我熟悉的静态语言进行对比,突出Python的独特性。我尤其关注书中是否会涉及Python特有的OOP机制,例如“dunder”方法(双下划线方法),以及如何利用它们来增强类的功能和实现更加精巧的面向对象设计。此外,我期待书中能够提供一些关于如何编写“Pythonic”的OOP代码的指导,例如如何正确使用装饰器、生成器等特性来改进面向对象的设计。这本书的出现,让我看到了一个系统性学习Python OOP的绝佳机会,我希望能借此机会,将我的OOP知识体系进行一次“Python化”的升级。
我的背景是软件测试,在工作中经常需要编写自动化测试脚本。近年来,Python在自动化测试领域越来越普及,我投入了大量精力学习Python。在学习过程中,我发现很多成熟的测试框架(如Selenium, Pytest等)都大量运用了面向对象编程(OOP)的思想。我希望这本书能够帮助我更好地理解这些框架的内部设计,从而写出更高效、更易于维护的测试脚本。我之所以选择这本书的英文影印版,是因为我认为测试工具和框架的设计往往非常精巧,理解其原始设计理念,对于掌握和应用它们至关重要。我希望这本书能够从最基础的概念讲起,逐步深入到OOP的高级应用,并且能够提供一些在测试场景下的实际应用案例。例如,我希望学习如何通过OOP来构建可重用的测试用例、如何设计灵活的测试数据管理类、以及如何利用OOP的思想来组织和管理整个测试项目。这本书的出现,让我看到了提升我自动化测试能力的一个新的途径,我希望能通过学习这本书,成为一个更优秀的自动化测试工程师。
作为一名有多年编程经验的开发者,我一直在寻找能够深化我对Python面向对象编程(OOP)理解的书籍。虽然我能够熟练地使用Python编写各种脚本和应用程序,但我总觉得在架构设计和代码组织方面还有很大的提升空间。我阅读过一些关于Python OOP的书籍,但总感觉它们要么过于基础,要么侧重于某些特定库的应用,而没有深入到OOP本身的设计哲学和最佳实践。这本书的“影印版(英文版)”的标签让我眼前一亮,这通常意味着内容更加权威和专业,能够提供更深入、更细致的讲解。我希望这本书能够帮助我理解如何通过OOP来构建更健壮、更易于维护、更具扩展性的软件系统。我特别关注书中对“设计模式”在Python OOP中的应用是否有所提及,以及如何运用OOP的思想来解决一些常见的软件开发难题。我希望这本书能够提供一些超越基础语法的深度内容,例如如何有效地利用Python的特性来实现OOP,如何进行良好的面向对象设计,以及如何避免在OOP实践中常见的陷阱。这本书的出现,让我看到了提升我Python开发技能到一个新高度的希望。
写得啰嗦,不清晰,口语化,最后三章实在无法忍受看不下去了
2019年已读008:最后四章暂时没看
2019年已读008:最后四章暂时没看
2019年已读008:最后四章暂时没看
写得啰嗦,不清晰,口语化,最后三章实在无法忍受看不下去了