Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Pro Python 3 : features and tools for professional development (3rd ed.)
Browning J., Alchin M., Apress, New York, NY, 2019. 480 pp. Type: Book (978-1-484243-84-8)
Date Reviewed: Feb 26 2020

This is an excellent book aimed at intermediate-level programmers already familiar with basic Python. The book aims to take these programmers to the next level by encouraging good habits and by examining various features and aspects of Python, such as classes and strings, and revealing functionality that an intermediate programmer may not be aware of. The book’s goal of helping the reader become a more proficient and productive programmer in Python is met through clear examples and focused and persuasive discussion, and by following the advice presented throughout the book and in subsequent examples. However, the book goes beyond simply focusing on coding advice and skills, which is found in many textbooks. There are chapters devoted to documentation, testing, and application distribution, all important aspects of software development that are often ignored in textbooks.

The book is organized into 11 chapters that gently guide the reader from intermediate programming skills to a more advanced level. While the authors assume a basic level of familiarity with Python, they begin in chapter 1, “Principles and Philosophy,” by covering basic software engineering principles aimed at developing code that is readable and maintainable. The 25 principles and philosophies covered (such as “readability counts,” “practicality beats purity,” “explicit is better than implicit”) are sound and applicable to all programming languages and projects.

Chapter 2, “Advanced Basics,” acts as a refresher for intermediate programmers on control flow, iteration, collections, and importing code. It ends with an example of extending Python by installing libraries. By the end of this chapter, the authors have ensured that all readers are at the same level, and they have established a set of skills and knowledge to then leverage in the remaining chapters.

Chapter 3, “Functions,” covers all aspects of functions in detail. Everything from arguments, decorators, function generation, lambdas, and introspection is addressed. Examples provided are meaningful and insightful. They are designed to expand the skill set of intermediate programmers and allow them to make use of advanced features and understand the benefits of those features and when it is appropriate/necessary to utilize them.

Chapter 4, “Classes,” does for classes what chapter 3 does for functions. The reader is elevated from an intermediate level to a more advanced level through the chapter’s discussion of inheritance, attributes, methods, and metaclasses.

Chapter 5, “Common Protocols,” covers basic operations, numbers, structures that can be iterated over, sequences, mappings, callable entities, and context managers. Examples, as always, help support the text in a clear and concise manner.

Chapter 6, “Object Management,” helps the reader understand the need and benefits of managing objects. Topics from garbage collection to pickling to namespaces are covered. The difference between a deep copy and a shallow copy is also addressed to help intermediate programs overcome a common challenge. The chapter has several examples to support the text, and they are also designed to highlight best practices and showcase interesting things that can be done. Each example helps the reader develop stronger coding skills and become even more proficient with Python.

Chapter 7, “Strings,” is the final chapter solely devoted to core language issues. It deals with string conversion, encoding, string substitution, and formatting. The chapter ends with a discussion on extending Python through the installation of a library to increase functionality and productivity.

Chapter 8, “Documentation,” focuses on best practices beyond simply writing code. The need for proper naming of entities, commenting code, using docstrings, and even documenting the software beyond simply documenting the code are discussed. The chapter is designed to help the reader develop maintainable code, as well as make it easier for others to install and use the software that the reader produces and distributes. As is often the case in earlier chapters, an existing Python extension to help with documentation is discussed at the end.

Chapter 9, “Testing,” promotes test-driven development (TDD). It builds on the previous chapter by opening with a discussion ensuring that the documentation and code behavior match. Unit testing and the use of custom test cases are then addressed before the chapter concludes with a detailed example.

Chapter 10, “Distribution,” covers details often ignored in many textbooks: how to effectively distribute code once it has been developed. Licensing and packaging the software for distribution is the focus of this chapter.

Chapter 11, “Sheets: A CSV Framework,” introduces declarative programming through the design and implementation of a framework to handle comma-separated values (CSV) files. This example is comprehensive and a good general-purpose utility that readers will be able to use to read and write CSV files within their own projects. The chapter acts as a capstone experience in many ways, and brings together and utilizes many of the concepts discussed earlier in the book.

In summary, this is an excellent book and is highly recommended for all Python programmers who want to elevate themselves from an intermediate skill level to a significantly more expert and productive level.

More reviews about this item: Amazon

Reviewer:  Michael Oudshoorn Review #: CR146906 (2008-0176)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Python (D.3.2 ... )
 
 
Language Constructs and Features (D.3.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Python": Date
Practical Python
Hetland M., APress, LP, 2002.  648, Type: Book (9781590590065)
Mar 28 2003
Python programming: an introduction to computer science
Zelle J., Franklin B, 2003. Type: Book (9781887902991)
Dec 2 2004
Foundations of Python network programming
Goerzen J., APress, LP, Berkeley, CA, 2004.  512, Type: Book (9781590593714)
Dec 26 2004
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy