O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

Book Description

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

  • Table of Contents

    1. About This eBook
    2. Title Page
    3. Copyright Page
    4. Dedication Page
    5. Contents at a Glance
    6. Contents
    7. Introduction to Python in Practice
      1. Acknowledgments
    8. 1. Creational Design Patterns in Python
      1. 1.1. Abstract Factory Pattern
      2. 1.2. Builder Pattern
      3. 1.3. Factory Method Pattern
      4. 1.4. Prototype Pattern
      5. 1.5. Singleton Pattern
    9. 2. Structural Design Patterns in Python
      1. 2.1. Adapter Pattern
      2. 2.2. Bridge Pattern
      3. 2.3. Composite Pattern
      4. 2.4. Decorator Pattern
      5. 2.5. Façade Pattern
      6. 2.6. Flyweight Pattern
      7. 2.7. Proxy Pattern
    10. 3. Behavioral Design Patterns in Python
      1. 3.1. Chain of Responsibility Pattern
      2. 3.2. Command Pattern
      3. 3.3. Interpreter Pattern
      4. 3.4. Iterator Pattern
      5. 3.5. Mediator Pattern
      6. 3.6. Memento Pattern
      7. 3.7. Observer Pattern
      8. 3.8. State Pattern
      9. 3.9. Strategy Pattern
      10. 3.10. Template Method Pattern
      11. 3.11. Visitor Pattern
      12. 3.12. Case Study: An Image Package
    11. 4. High-Level Concurrency in Python
      1. 4.1. CPU-Bound Concurrency
      2. 4.2. I/O-Bound Concurrency
      3. 4.3. Case Study: A Concurrent GUI Application
    12. 5. Extending Python
      1. 5.1. Accessing C Libraries with ctypes
      2. 5.2. Using Cython
      3. 5.3. Case Study: An Accelerated Image Package
    13. 6. High-Level Networking in Python
      1. 6.1. Writing XML-RPC Applications
      2. 6.2. Writing RPyC Applications
    14. 7. Graphical User Interfaces with Python and Tkinter
      1. 7.1. Introduction to Tkinter
      2. 7.2. Creating Dialogs with Tkinter
      3. 7.3. Creating Main-Window Applications with Tkinter
    15. 8. OpenGL 3D Graphics in Python
      1. 8.1. A Perspective Scene
      2. 8.2. An Orthographic Game
    16. A. Epilogue
    17. B. Selected Bibliography
    18. Index
    19. Mark Summerfield
      1. Production