Key Features
- Create applications with flexible logging, powerful configuration and command-line options, automated unit tests, and good documentation
- Use the Python special methods to integrate seamlessly with built-in features and the standard library
- Design classes to support object persistence in JSON, YAML, Pickle, CSV, XML, Shelve, and SQL
Book Description
An object-oriented approach to Python web development gives you a much more fully-realised experience of the language. The flexibility and power of Python, combined with the improvements in design, coding and software maintenance that object-oriented programming allows, is built to respond to the challenges of increasingly more complex and data-intensive application development, making difficult tasks much more manageable. This book has been designed to make this sophisticated approach to programming easier to learn quickly, providing you with a clear and coherent learning journey.
Beginning by looking at a range of design patterns for the _init_() method, you will learn how to effectively use a range of Pythonâs special methods to create classes that integrate with Pythonâs built-in features, and find detailed explorations and demonstrations of callables and contexts, containers and collections, numbers, and decorators and mixins, with a focus on best practices for effective and successful design. The book also features information that demonstrates how to create persistent objects using JSON, YAML, Pickle, CSV, XML, Shelve and SQL and shows you how to transmit objects between processes. Going further into OOP, youâll find expert information on logging, warnings, unit testing as well as working with the command line.
Structured in 3 parts to make the complexity of OOP more manageable - Pythonic Classes via Special Methods, Persistence and Serialization and Testing, Debugging, Deploying, and Maintaining â this book offers deep insight into OOP that will help you develop expert level object-oriented Python skills.
What you will learn
- Create applications with flexible logging, powerful configuration and command-line options, automated unit tests, and good documentation
- Get to grips with different design patterns for the __init__() method
- Design callable objects and context managers
- Perform object serialization in formats such as JSON, YAML, Pickle, CSV, and XML
- Map Python objects to a SQL database using the built-in SQLite module
- Transmit Python objects via RESTful web services
- Devise strategies for automated unit testing, including how to use the doctest and the unittest.mock module
- Parse command-line arguments and integrate this with configuration files and environment variables
About the Author
Steven F. Lott has been programming since the 70s, when computers were large, expensive, and rare. As a contract software developer and architect, he has worked on hundreds of projects, from very small to very large. He's been using Python to solve business problems for over 10 years.
Table of Contents
- The _init_() Method
- Integrating Seamlessly with Basic Python Special Methods
- Attribute Access, Properties, and Descriptors
- The ABCs of Consistent Design
- Using Callables and Contexts
- Creating Contrainers and Collections
- Creating Numbers
- Decorators and Mixins: Cross-Cutting Aspects
- Serializing and Saving â JSON, YAML, Pickle, CSV, and XML
- Storing and Retrieving Objects via Shelve
- Storing and Retrieving Objects via SQLite
- Transmitting and Sharing Objects
- Configuration Files and Persistence
- The Logging and Warning Modules
- Designing for Testability
- Coping with the Command Line
- The Module and Package Design
- Quality and Documentation