Preface
- Errata and Suggestions
- Conventions Used in This Book
Welcome Journeyman!
Prerequisites
- A functioning Python 3 runtime
- Defining function, passing arguments, and returning values
- Creating, importing and executing modules
- Built-in types: Integers, Floats, Strings, Lists, Dictionaries and Sets
- Fundamentals of the Python object model
- Raising and handling exceptions
- Iterables and iterators
- Defining classes with methods
- Reading and writing text and binary files
- Unit testing, debugging and deployment
Well begun is half done
Chapter 1 - Organizing Larger Programs
- Packages
- Implementing packages
- Relative imports
__all__- Namespace packages
- Executable directories
- Executable packages
- Recommended layout
- Modules are singletons
- Summary
Chapter 2 - Beyond Basic Functions
- Review of Functions
- Functions as callable objects
- Callable instances and the
__call__()method - Classes are Callable
- Leveraging callable classes
- Lambdas
- Detecting Callable Objects
- Extended Formal Parameter Syntax
- Extended Call Syntax
- Transposing Tables
- Summary
Chapter 3 - Closures and Decorators
- Local functions
- Closures and nested scopes
- Function decorators
- Validating arguments
- Summary
Chapter 4 - Properties and Class Methods
- Class attributes
- Static methods
- Class methods
- Named constructors
- Overriding static- and class-methods
- Properties
- Overriding properties
- The template method pattern
- Summary
Chapter 5 - Strings and Representations
- Two string representations
- Strings for developers with
repr() - Strings for clients with
str() - When are the representation used?
- Precise control with
format() - Leveraging
reprlibfor large strings - The
ascii(),ord()andchr()built-in functions - Case study: String representations of tabular data
- Summary
Chapter 6 - Numeric and Scalar Types
- Python’s basic numeric types
- The limits of floats
- The decimal module
- The fractions module
- Complex Numbers
- Built-in functions relating to numbers
- Dates and times with the datetime module
- Case study: Rational numbers and computational geometry
- Summary
Chapter 7 - Iterables and Iteration
- Review of comprehensions
- Multi-input comprehensions
- Functional-style tools
map()filter()functools.reduce()- Combining functional concepts: map-reduce
- The iteration protocols
- Case study: an iterable and iterator for streamed sensor data
- Summary
Chapter 8 - Inheritance and Subtype Polymorphism
- Single inheritance
- Type inspection
- Multiple inheritance
- MRO: Method Resolution Order
super()object- Inheritance for Implementation Sharing
- Summary
Chapter 9 - Implementing Collections with Protocols
- Collection protocols
- Test first
- The initializer
- The container protocol
- The sized protocol
- The iterable protocol
- The sequence protocol
- The set protocol
- Summary
Chapter 10 - Errors and Exceptions in Depth
- Exception dangers
- Exceptions hierarchies
- Exception payloads
- User-defined exceptions
- Exception chaining
- Tracebacks
- Assertions
- Preconditions, postconditions and assertions
- Summary
Chapter 11 - Defining Context Managers
- What is a context manager?
- The context manager protocol
contextlib.contextmanager- Multiple context-managers in a with-statement
- Context managers for transactions
- Summary
Chapter 12 - Introspection
- Introspecting types
- Introspecting objects
- Introspecting scopes
- The
inspectmodule - An object introspection tool
- Summary