Python Programming Patterns
The real-world guide to enterprise-class Python development.-- The right way to write Python: using modularization, toolkits, frameworks, abstract data types, and object-oriented techniques.-- Includes more than 20 proven object-oriented patterns for large-scale Python development.-- Detailed coverage of persistence, concurrent programming, metaprogramming, functional programming, and more.Python isn't just a tool for creating short Web scripts and simple prototypes: its advantages are equally compelling in large-scale development. In this book, Thomas Christopher shows developers the best ways to write large programs with Python, introducing powerful design patterns that deliver unprecedented levels of robustness, scalability, and reuse. Python Programming Patterns teaches both the Python programming language and how to "program in the large" in Python, using object-oriented techniques. Thomas Christopher demonstrates how to write Python code that leverages "programming-in-the-large" software structuring techniques, including modularization, toolkits, frameworks, abstract data types, and especially object-orientation. He presents more than 20 powerful object-oriented design patterns for Python, including creational, structural, and behavior patterns. The book includes detailed coverage of key topics such as persistence, concurrent programming, and metaprogramming (Python's term for reflection or introspection). Christopher also presents useful functional programming techniques, showing how to combine them with other techniques to make them even more valuable. For every enterprise developer who wants to use Python.
- Paperback | 560 pages
- 171.5 x 228.6 x 44.5mm | 1,043.27g
- 01 Dec 2001
- Pearson Education (US)
- Prentice Hall
- Upper Saddle River, United States
- w. figs.
Table of contents
Introduction. Acknowledgments. 1. Getting Started. Why Write Larger Programs in Python? Running Python. Numbers. Lists, Strings, and Tuples. Logical Values. Dictionaries. Assignments. Garbage Collection. Operators. Wrap-Up.2. Statements. Python Statements. Example: Word Count. Wrap-Up. Exercises.3. Modules and Packages. Importing Modules. Importing Names from Modules. Avoiding Namespace Pollution. Reloading Modules. Search Paths. Packages. Example Stack Module. Critique of Modules. Wrap-Up. Exercises.4. Objects and Classes. Instances and Classes. Class Declarations. Instances. Methods. Single Inheritance. Visibility. Explicit Initializer Chaining. Example: Set Implementation. Critique. Example: BaseTimer. Inheritance As Classification. Multiple Inheritance. Recapitulation of the Scope of Names. Testing Objects and Classes. Wrap-Up. Exercises.5. Object-Oriented Patterns. Concept of Design Patterns. Creational Patterns. Structural Patterns. Behavioral Patterns. Wrap-Up. Exercises.6. Functions. Parameter and Argument Lists. Three-Level Scopes. Functional Programming. Function Objects. Built-In Functions. Wrap-Up. Exercises.7. Input/Output. File Objects. Execution Environment. Other Useful Modules. Wrap-Up. Exercises.8. Sequences. Common Sequence Operations. Tuples. Lists. Wrap-Up. Exercises.9. Strings. String Literals. Strings as Sequences. String Methods. Example: Splitter. String Formatting: The % Operator. Wrap-Up. Exercises.10. Dictionaries. Dictionary Operations. Example: Union-Find Algorithm. Persistence and Databases. Wrap-Up. Exercises.11. Exceptions. Exception Classes. Minimal Exception Handling. Examining the Exception. Raising Exceptions. Tracebacks. Re-Raising Exceptions. Raise with Strings. Try-Except-Else. The Try-Finally Statement. Wrap-Up. Exercises.12. Types. Type Objects. Members and Methods. Numbers, Strings, Tuples, Lists, and Dictionaries. Modules. User-Defined Functions. Code Objects. Classes. Class Instances. User-Defined Methods. Built-In Functions and Methods. Slice. Xrange. File. Frame. Traceback. Example: Scopes. Wrap-Up. Exercises.13. Programs and Run-Time Compilation. Python Interpreter Startup. Run-Time Compilation. Wrap-Up. Exercises.14. Abstract Data Types and Special Methods. Special Methods. Methods for All Objects. Operators. Arithmetic Operators. Augmented Assignment. Rich Comparisons. Attribute Access. Function Call Method. Wrap-Up. Exercises.15. Abstract Container Data Types. Special Methods for Container ADTs. DEQueue. Multidimensional Arrays. Class Versions of Built-In Data Types. Wrap-Up. Exercises.16. Priority Queues. Priority Queue Operations. Priority Queue Implementation. Unique Elements. Critique. Wrap-Up. Exercises.17. Sets. Set Operations. Implementation. PureSet: A Protection Proxy. SetEnumeration. Wrap-Up. Exercises.18. Concurrency. Threads. Race Conditions. Locks and Mutual Exclusion. Monitor Pattern. Producer-Consumer. Deadlock. Example: Future. Wrap-Up. Exercises.19. Transactions. Shared Database Operations. Example: Dining Philosophers. Implementation of SharedDB. Wrap-Up. Exercises.20. Run Queues. Simple RunQueue. Implementing RunQueue. Detecting Termination of an Object on the RunQueue. TransactionQueue. Example of TransactionQueue: Dining Philosophers. Wrap-Up. Exercises.21. Regular Expressions. Overall Behavior of re Module. re Syntax. Functions in re Module. Pattern Objects. Match Objects. Other Modes. Other Methods and Functions. Example: Scanner. Wrap-Up. Exercises.22. Parser. Overview of the Process. Implementing a Calculator. Building a Tree. Wrap-Up. Exercises.23. Wrap-Up. Contents. Software. Advice to the Reader.Appendix A. Index.
About Thomas Christopher
THOMAS CHRISTOPHER is a principal in Tools of Computing LLC, a Chicago-area consultancy specializing in high-performance computing and object-oriented languages. With George K. Thiruvathukal, he co-authored High Performance Java Platform Computing (Prentice Hall PTR/Sun Microsystems Press) and Web Programming in Python (Prentice Hall PTR). Christopher is former professor at Illinois Institute of Technology.