Books & Videos

Table of Contents

Chapter: Introduction

Effective Python LiveLessons: Introduction

03m 11s

Chapter: Lesson 1: Using Expressions and Statements


00m 55s

Item 1 Know how to slice sequences

05m 35s

Item 2 Avoid using start, end, and stride in a single slice

03m 45s

Item 3 Prefer ENUMERATE over RANGE

03m 45s

Item 4 Use ZIP to process iterators in parallel

05m 40s

Item 5 Avoid ELSE blocks after FOR and WHILE loops

06m 45s

Item 6 Take advantage of each block in TRY/EXCEPT/ELSE/FINALLY

11m 11s

Item 7 Consider CONTEXTLIB and with statements for reusable TRY/FINALLY behavior

09m 31s

Chapter: Lesson 2: Using Comprehensions and Generators


00m 41s

Item 8 Use list comprehensions instead of MAP and FILTER

04m 36s

Item 9 Avoid more than two expressions in list comprehensions

10m 0s

Item 10 Consider generator expressions for large comprehensions

06m 1s

Item 11 Consider generators instead of returning lists

07m 54s

Item 12 Be defensive when iterating over arguments

15m 4s

Chapter: Lesson 3: Using Functions


00m 52s

Item 13 Know how closures interact with variable scope

14m 24s

Item 14 Accept functions for simple interfaces instead of classes

13m 58s

Item 15 Reduce visual noise with variable positional arguments

06m 6s

Item 16 Provide optional behavior with keyword arguments

07m 0s

Item 17 Enforce clarity with keyword-only arguments

06m 1s

Item 18 Use NONE and docstrings to specify dynamic default arguments

07m 2s

Chapter: Lesson 4: Using Classes


00m 29s

Item 19 Prefer helper classes over bookkeeping with dictionaries and tuples

18m 16s

Item 20 Use plain attributes instead of get and set methods

14m 27s

Item 21 Prefer public attributes over private ones

15m 19s

Item 22 Use @classmethod polymorphism to construct objects generically

17m 6s

Chapter: Lesson 5: Working with Concurrency and Parallelism


00m 31s

Item 23 Use subprocess to manage child processes

14m 21s

Item 24 Use threads for blocking I/O, avoid for parallelism

14m 6s

Item 25 Use Lock to prevent data races in threads

12m 6s

Item 26 Use Queue to coordinate work between threads

18m 36s

Item 27 Consider concurrent.futures for true parallelism

10m 5s

Chapter: Lesson 6: Making Programs Robust


00m 41s

Item 28 Use virtual environments for isolated and reproducible dependencies

11m 23s

Item 29 Test everything with unittest

09m 14s

Item 30 Consider interactive debugging with pdb

08m 31s

Item 31 Profile before optimizing

14m 33s

Item 32 Use tracemalloc to understand memory usage and leaks

08m 25s

Chapter: Summary

Effective Python LiveLessons: Summary

00m 58s