Home > Store

Python in Practice: Create Better Programs Using Concurrency, Libraries, and Patterns

Register your product to gain access to bonus material or receive a coupon.

Python in Practice: Create Better Programs Using Concurrency, Libraries, and Patterns


  • Sorry, this book is no longer in print.
Not for Sale

eBook (Watermarked)

  • Your Price: $28.79
  • List Price: $35.99
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.



  • Introduces readers to solid, well-established third-party libraries that greatly extend the standard Python library.
  • Expands upon many key areas including user-interface, graphics, and multi-core and distribution programming
  • Python 3 is becoming the dominant form of Python and this is one of the only books out there to cover just Python 3


  • Copyright 2014
  • Dimensions: 7" x 9"
  • Pages: 336
  • Edition: 1st
  • Book
  • ISBN-10: 0-321-90563-6
  • ISBN-13: 978-0-321-90563-5

Winner of the 2014 Jolt Award for "Best Book"


“Whether you are an experienced programmer or are starting your career, Python in Practice is full of valuable advice and example to help you improve your craft by thinking about problems from different perspectives, introducing tools, and detailing techniques to create more effective solutions.”

Doug Hellmann, Senior Developer, DreamHost

If you’re an experienced Python programmer, Python in Practice will help you improve the quality, reliability, speed, maintainability, and usability of all your Python programs.

Mark Summerfield focuses on four key themes: design patterns for coding elegance, faster processing through concurrency and compiled Python (Cython), high-level networking, and graphics. He identifies well-proven design patterns that are useful in Python, illuminates them with expert-quality code, and explains why some object-oriented design patterns are irrelevant to Python. He also explodes several counterproductive myths about Python programming—showing, for example, how Python can take full advantage of multicore hardware.

All examples, including three complete case studies, have been tested with Python 3.3 (and, where possible, Python 3.2 and 3.1) and crafted to maintain compatibility with future Python 3.x versions. All code has been tested on Linux, and most code has also been tested on OS X and Windows. All code may be downloaded at www.qtrac.eu/pipbook.html.

Coverage includes

  • Leveraging Python’s most effective creational, structural, and behavioral design patterns
  • Supporting concurrency with Python’s multiprocessing, threading, and concurrent.futures modules
  • Avoiding concurrency problems using thread-safe queues and futures rather than fragile locks
  • Simplifying networking with high-level modules, including xmlrpclib and RPyC
  • Accelerating Python code with Cython, C-based Python modules, profiling, and other techniques
  • Creating modern-looking GUI applications with Tkinter
  • Leveraging today’s powerful graphics hardware via the OpenGL API using pyglet and PyOpenGL

Sample Content

Online Sample Chapter

Creational Design Patterns in Python

Sample Pages

Download the sample pages (includes Chapter 1 and Index)

Table of Contents

Foreword       xiii

Introduction       1

Acknowledgments         3

Chapter 1:  Creational Design Patterns        5

1.1. Abstract Factory Pattern  5

1.2. Builder Pattern  11

1.3. Factory Method Pattern  17

1.4. Prototype Pattern  24

1.5. Singleton Pattern  26

Chapter 2:  Structural Design Patterns          29

2.1. Adapter Pattern   29

2.2. Bridge Pattern   34

2.3. Composite Pattern   40

2.4. Decorator Pattern   48

2.5. Façade Pattern    59

2.6. Flyweight Pattern    64

2.7. Proxy Pattern    67

Chapter 3:  Behavioral Design Patterns    73

3.1.   Chain of Responsibility Pattern   74

3.2.   Command Pattern   79

3.3.   Interpreter Pattern  83

3.4.   Iterator Pattern    95

3.5.   Mediator Pattern    100

3.6.   Memento Pattern  106

3.7.   Observer Pattern   107

3.8.   State Pattern    111

3.9.   Strategy Pattern    116

3.10. Template Method Pattern    119

3.11. Visitor Pattern    123

3.12. Case Study: An Image Package    124

Chapter 4: High-Level Concurrency            141

4.1. CPU-Bound Concurrency  144

4.2. I/O-Bound Concurrency    155

4.3. Case Study: A Concurrent GUI Application    164

Chapter 5:  Extending Python          179

5.1. Accessing C Libraries with ctypes    180

5.2. Using Cython    187

5.3. Case Study: An Accelerated Image Package    198

Chapter 6:  High-Level Networking              203

6.1. Writing XML-RPC Applications   204

6.2. Writing RPyC Applications     219

Chapter 7:  Graphical User Interfaces with Tkinter           231

7.1. Introduction to Tkinter     233

7.2. Creating Dialogs with Tkinter    235

7.3. Creating Main-Window Applications with Tkinter    253

Chapter 8:  OpenGL 3D Graphics            263

8.1. A Perspective Scene    264

8.2. An Orthographic Game    272

Appendix A:  Epilogue         283

Appendix B:  Selected Bibliography          285

Index            289


Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership