Files Included :
1 Essential Terms & Concepts (29.47 MB)
2 Inheritance, Subclasses, and Superclasses (35.27 MB)
3 Basic Class, Instance, and Attribute Syntax (86.35 MB)
4 Basic Instance Method Syntax (52.26 MB)
5 Reflexion Basics isinstance and issubclass (93.91 MB)
6 Challenge Build a Library Management System (18.82 MB)
7 Solution Walk-Through Build a Library Management System (90.71 MB)
1 Inheritance vs Composition (24.27 MB)
2 Composition in Code (119.39 MB)
3 Interesting Benefits of Composition (104.93 MB)
4 Hands-On Example Video Game Characters (88.77 MB)
1 Python's Six Argument Types (57.46 MB)
2 Use Cases for Regular Argument Types (38.41 MB)
3 Use Cases for Arbitrary and Restricted Arguments (65.49 MB)
4 Challenge Using Argument Types (42.83 MB)
5 Solution Using Argument Types (52.98 MB)
1 What are Decorators (21 MB)
2 Basic Function Decorator Syntax (43.54 MB)
3 Implementing Simple Decorators (90.18 MB)
4 Decorator Arguments and Stacking (70.12 MB)
5 Challenge Improved Debugging Decorator (19.7 MB)
6 Solution Improved Debugging Decorator (51.38 MB)
1 Pattern #1 Monitoring Decorator (48.73 MB)
2 Pattern #2 Retry Decorator (61.18 MB)
3 Pattern #3 Caching Decorator (50.37 MB)
4 Closure in Python Decorators (44.94 MB)
5 Challenge Average Performance Decorator (16.46 MB)
6 Challenge Average Performance Decorator 2 (33.75 MB)
1 What are Class Decorators (35.74 MB)
2 Basic Class Decorator Syntax (71.4 MB)
3 Decorating Functions with Classes (79.51 MB)
4 Decorating Classes with Classes (57.7 MB)
5 Challenge Attribute Type Validation (11.61 MB)
6 Solution Attribute Type Validation (43.27 MB)
1 Pattern #1 Counting Instances (58.5 MB)
2 Pattern #2 Observing Attribute Changes (51.34 MB)
3 Pattern #3 Singleton Classes (54.84 MB)
4 Challenge Accessing Other Instances (34.07 MB)
5 Solution Accessing Other Instances (42.88 MB)
1 What are Class Methods (316.92 MB)
2 What are Static Methods (143.33 MB)
3 Instance Counting with Class Methods (217.08 MB)
4 Combining Class Methods and Attributes with Decorators (160.76 MB)
5 Challenge and Solution Alternative Constructors (91.22 MB)
6 Challenge and Solution Alternative Constructors 2 (138.38 MB)
1 Class-Level Settings (297.53 MB)
2 Flexible Defaults for Instance Attributes (329.86 MB)
3 Making Fluent, Chainable Methods (208.22 MB)
4 Challenge and Solution Flexible Defaults Decorator (61.54 MB)
5 Challenge and Solution Flexible Defaults Decorator 2 (133.59 MB)
1 What are Abstract Classes and Methods (112.5 MB)
2 Basic Abstract Syntax (325.33 MB)
3 Abstract Class Inheritance (161.35 MB)
4 Abstract Class and Static Methods (163.36 MB)
5 Challenge and Solution Working with Shapes (64.4 MB)
6 Challenge and Solution Working with Shapes 2 (346.82 MB)
1 The Observer Pattern (93.53 MB)
2 Implementing the Observer Pattern (118.89 MB)
3 A Concrete Observer Pattern Example (244.16 MB)
4 The Template Method Pattern (145.87 MB)
5 Implementing the Template Method Pattern (198.94 MB)
6 Challenge and Solution Combining Patterns (128.93 MB)
7 Challenge and Solution Combining Patterns 2 (77.6 MB)
1 Basics of Private and Protected Attributes (266.93 MB)
2 Private and Protected Attribute Examples (263.93 MB)
3 Implementing Private Attributes with Magic Methods (206.18 MB)
4 Challenge and Solution Bank Account Management (93.12 MB)
5 Challenge and Solution Bank Account Management 2 (144.46 MB)
1 What are Magic Methods (28.5 MB)
2 Comparison Magic Method Basics (43.55 MB)
3 Other Comparison Magic Methods (65.42 MB)
4 Challenge and Solution Build a Fraction Class (11.5 MB)
5 Challenge and Solution Build a Fraction Class 2 (100.47 MB)
1 Basics of Properties (226.69 MB)
2 Getters, Setters, and Deleters (159.12 MB)
3 Read-Only Properties (121.9 MB)
4 Setter Validation and Wrangling (200.99 MB)
5 Property Chaining (245.95 MB)
6 Challenge and Solution Person Properties (100.79 MB)
7 Challenge and Solution Person Properties 2 (218.49 MB)
1 The Basic Idea (197.51 MB)
2 Extending Strings (269.84 MB)
3 Extending Ints and Floats (208.76 MB)
4 Mutable vs Immutable Types (190.43 MB)
5 Challenge and Solution No Empty Strings (32.19 MB)
6 Challenge and Solution No Empty Strings 2 (153.38 MB)
1 Extending Lists (215.12 MB)
2 Adding New Methods to Lists (188.08 MB)
3 Extending Dictionaries (214.66 MB)
4 Extending Tuples (219.51 MB)
5 Challenge and Solution History List (67.24 MB)
6 Challenge and Solution History List 2 (166.13 MB)
1 Example #1 Instance Counting with Ints (132.55 MB)
2 Example #2 Sanitized Strings (200.84 MB)
3 Example #3 Default-Value Dictionaries (218.95 MB)
4 Using Magic Methods with Built-in Type Extensions (189.7 MB)
5 Example #4 Percentage Floats (167.69 MB)
6 Challenge and Solution (Example #5) Representing Units (99.39 MB)
7 Challenge and Solution (Example #5) Representing Units 2 (176.61 MB)
1 Basic Terminology (266.68 MB)
2 Python's Built-in Exceptions (183.8 MB)
3 Raising Our Own TypeErrors and ValueErrors (256.64 MB)
4 Raising Our Own KeyErrors, AttributeErrors, etc (82.25 MB)
5 Challenge and Solution Library Enhancements (100.74 MB)
6 Challenge and Solution Library Enhancements 2 (174.48 MB)
1 Try and Except Basics (315.85 MB)
2 The Finally and Else Blocks (169.23 MB)
3 Program Flow During Exceptions (195.93 MB)
4 Program Flow in Layered Programs (172.41 MB)
5 Challenge and Solution Creating Instances from User Input (132.63 MB)
6 Challenge and Solution Creating Instances from User Input 2 (288.59 MB)
1 Where Should We Handle Exceptions (232.92 MB)
2 Exception Handling in Different Locations (351.17 MB)
3 Creating Custom Exceptions (131.54 MB)
4 Basics of Exception Chaining (341.73 MB)
5 Challenge and Solution Custom Exceptions and Chaining (130.37 MB)
6 Challenge and Solution Custom Exceptions and Chaining 2 (137.74 MB)
1 The Basics of Shallow Copying (235.23 MB)
2 The Basics of Deep Copying (223.48 MB)
3 Shallow- and Deep-Copying Pros and Cons (225.38 MB)
4 Label vs Identity vs Value (193.52 MB)
5 Challenge & Solution What Happens to Arguments (114.1 MB)
6 Challenge & Solution What Happens to Arguments 2 (129.2 MB)
1 The Basics of Serialization and Deserialization (225.61 MB)
2 Serializing with the Pickle Library (174.62 MB)
3 What Types of Data Can I Pickle (248.33 MB)
4 Serializing with JSON (254.67 MB)
5 Challenge and Solution Serializing Instances (126.46 MB)
6 Challenge and Solution Serializing Instances 2 (99.91 MB)
1 Reflection and Introspection Functions, Part I (230.59 MB)
2 Reflection and Introspection Functions, Part II (157.91 MB)
3 The name Attribute (150.77 MB)
4 Other Special Attributes (183.82 MB)
5 Challenge and Solution Tell Me About (126.53 MB)
6 Challenge and Solution Tell Me About 2 (175.79 MB)
1 Numeric Magic Methods (48.37 MB)
2 Other Numeric Magic Methods (55.87 MB)
3 Hands-On Example Numeric Methods (106.34 MB)
4 Challenge Lunar Arithmetic (20.19 MB)
5 Solution Walk-Through Lunar Arithmetic (129.29 MB)
1 Metaprogramming with Decorators (211.35 MB)
2 Dynamic Code Execution (188.17 MB)
3 Building a Code Quiz with Dynamic Code Execution (214.41 MB)
4 Modifying Code Programmatically (199.46 MB)
5 Challenge and Solution There Is (Almost Always) A Better Way (198.56 MB)
6 Challenge and Solution There Is (Almost Always) A Better Way (35.11 MB)
1 What is a Metaclass (202.17 MB)
2 Some Simple Metaclass Examples (179.8 MB)
3 Modifying Classes with Metaclasses (189.16 MB)
4 Challenge and Solution Metaclass Creator Functions (79.2 MB)
5 Challenge and Solution Metaclass Creator Functions 2 (158.6 MB)
1 Example #1 Metaclass Instance Counting (254.87 MB)
2 Example #2 Preventing Multiple Inheritance (170.17 MB)
3 Example #3 Adding Metaclasses by Using Decorators (254.64 MB)
4 Example #4 Metaclasses and Inheritance (241.54 MB)
5 Challenge & Solution Combining Metaclasses (39 MB)
6 Challenge & Solution Combining Metaclasses 2 (85.94 MB)
1 Function Indentation Basics (246.45 MB)
2 Other Indentation Rules (131.52 MB)
3 Breaking Up Lines (183.17 MB)
4 When to Use Blank Lines (209.87 MB)
5 Challenge & Solution PEP8 in Action (41.68 MB)
6 Challenge & Solution PEP8 in Action 2 (163.54 MB)
1 Basic Whitespace Guidelines (199.75 MB)
2 More Whitespace Guidelines (278.65 MB)
3 Comment Guidelines (163.37 MB)
4 Naming Convention Guidelines (234.75 MB)
5 Challenge & Solution PEP8 In Action (22.61 MB)
6 Challenge & Solution PEP8 In Action 2 (112.06 MB)
1 Displaying the Main Window (269.14 MB)
2 Creating and Adding Widgets (165.86 MB)
3 Widgets for Displaying Text (245.07 MB)
4 Challenge & Solution Fibonacci GUI (88.41 MB)
5 Challenge & Solution Fibonacci GUI 2 (145.83 MB)
1 User Input Widgets (118.55 MB)
2 Buttons and Entries (245.18 MB)
3 The Text Widget (140.75 MB)
4 Checkbuttons and Radiobuttons (284.7 MB)
5 Challenge & Solution Building a Form (45.12 MB)
6 Challenge & Solution Building a Form 2 (145.06 MB)
1 Moving Widgets Around with Pack (279.52 MB)
2 The Place Method (171.11 MB)
3 Geometry Managers and the Grid Method (349.82 MB)
4 Challenge & Solution Container Widgets (234.34 MB)
5 Challenge & Solution Container Widgets 2 (230.02 MB)
1 Working with Observable Variables (261.29 MB)
2 Hiding Widgets with Observable Variables (205.67 MB)
3 Using the bind() Method (215.19 MB)
4 Binding Keyboard Events (197.58 MB)
5 Challenge & Solution Form Validation (60.37 MB)
6 Challenge & Solution Form Validation 2 (133.65 MB)
1 Basic Widget Styling Options (224.14 MB)
2 Borders and Reliefs (235.01 MB)
3 Highlighting Entries (235.49 MB)
4 Challenge & Solution Styling Playground (55.35 MB)
5 Challenge & Solution Styling Playground 2 (260.07 MB)
1 Basic Type Conversion Magic Methods (73.74 MB)
2 Instance Representations and Formatting (105.09 MB)
3 Challenge and Solution Type Conversion Methods for Fractions (30.08 MB)
4 Challenge and Solution Type Conversion Methods for Fractions (123.51 MB)
1 Themed Tkinter Widgets (201.26 MB)
2 Creating Simple Shared Styles (199.94 MB)
3 Tkinter's Built-in Themes (257.96 MB)
4 Challenge & Solution Dark Mode (47.09 MB)
5 Challenge & Solution Dark Mode 2 (203.8 MB)
1 Creating and Displaying a Canvas (156.34 MB)
2 Drawing Simple Shapes (200.36 MB)
3 Drawing Text and Images (208.55 MB)
4 Using Windows to Insert Widgets (127.43 MB)
5 Challenge A Simple Drawing Application (83.99 MB)
6 Challenge A Simple Drawing Application 2 (169.83 MB)
1 Draw the Axes (63.67 MB)
2 Draw the Bar Widths (68.61 MB)
3 Draw the Bar Heights (55.43 MB)
4 Draw a Pie Chart (71.51 MB)
5 Challenge & Solution Line Graphs (7.88 MB)
6 Challenge & Solution Line Graphs 2 (58.26 MB)
1 Making Basic Network Requests in Python (72.75 MB)
2 Working with API Keys (113.43 MB)
3 Creating a Simple Server (71.69 MB)
4 Challenge Go Forth and Practice (17.79 MB)
1 What is REST Anyway (21.81 MB)
2 RESTful Basics (47.59 MB)
3 Creating a REST API (68.66 MB)
4 Building Read Endpoints (99.73 MB)
5 Challenge & Solution Create a Client (12.32 MB)
6 Challenge & Solution Create a Client 2 (27.7 MB)
1 Adding Extra Request Data (46.12 MB)
2 Handling Request Bodies on the Server-Side (81.57 MB)
3 Including Request Bodies on the Client-Side (70.49 MB)
4 Query Parameter Basics (110.43 MB)
5 Challenge & Solution Finish the Endpoints (11.78 MB)
6 Challenge & Solution Finish the Endpoints 2 (66.34 MB)
1 Creating A Socket Server (27.93 MB)
2 Creating A Socket Client (36 MB)
3 Sending Socket Messages (57.85 MB)
4 Keeping Socket Connections Open (73.69 MB)
5 Handling Multiple Clients (54.13 MB)
6 Challenge & Solution Forwarding Messages (12.71 MB)
7 Challenge & Solution Forwarding Messages 2 (67.44 MB)
1 Handling Common Socket Exceptions (99.35 MB)
2 Sending Different Types of Data (84.35 MB)
3 Sending Complex Data Using Pickle (22.25 MB)
4 A Harder Way to Send Data (45.38 MB)
5 Challenge & Solution Rock, Paper, Scissors (7.69 MB)
6 Challenge & Solution Rock, Paper, Scissors 2 (72.01 MB)
1 JSON Syntax and Structure Basics (33.7 MB)
2 JSON Data Types (39.38 MB)
3 Loading and Dumping JSON Data with the json Module (65.8 MB)
4 Challenge & Solution A JSON Database (6.69 MB)
5 Challenge & Solution A JSON Database 2 (70.04 MB)
1 XML Syntax and Structure Basics (34.1 MB)
2 Representing Data with XML (88.28 MB)
3 Parsing and Working with XML Data (72.24 MB)
4 Challenge & Solution Translating JSON to XML (8.7 MB)
5 Challenge & Solution Translating JSON to XML 2 (45.52 MB)
1 Basic Attribute Access Magic Methods (72.36 MB)
2 Creating Computed Attributes (57.87 MB)
3 Automatic Unit Conversion (85.24 MB)
4 Challenge and Solution Person Class Enhancements (21.17 MB)
5 Challenge and Solution Person Class Enhancements 2 (178.44 MB)
1 SQLite Basic Concepts (16.38 MB)
2 Creating Tables in SQLite (25.03 MB)
3 Executing SQLite Statements in Python (44.67 MB)
4 Inserting Data in SQLite (38.03 MB)
5 Selecting Data in SQLite (64.64 MB)
6 Challenge & Solution Creating Another Table (8.03 MB)
7 Challenge & Solution Creating Another Table (42.55 MB)
1 Deleting Data in SQLite (66.82 MB)
2 Avoiding SQL Injection (62.79 MB)
3 Updating Data in SQLite (57.08 MB)
4 Challenge & Solution Interactive Product Management System (10.77 MB)
5 Challenge & Solution Interactive Product Management System 2 (58.22 MB)
1 Narrowing Queries (32.07 MB)
2 Grouping and Manipulating Query Results (36.93 MB)
3 Narrowing Queries Practice (67.52 MB)
4 Grouping and Manipulating Queries Practice (81.52 MB)
5 Challenge & Solution More Complex Query Practice (29.68 MB)
6 Challenge & Solution More Complex Query Practice 2 (43.22 MB)
1 What Will We Be Building (55.81 MB)
2 Basic Application Setup (87.62 MB)
3 Implementing the Init Methods (69.06 MB)
4 Receiving and Broadcasting Messages on the Server (77.11 MB)
5 Creating the User Interface (85.9 MB)
6 Implementing the Client-Side Logic (90.87 MB)
7 Challenge & Solution Adding User Ids (44.52 MB)
8 Challenge & Solution Adding User Ids 2 (104.79 MB)
1 What Will We Be Building (37.02 MB)
2 Setting Up the Back-end (58.1 MB)
3 Implementing the Load Endpoint with SQLite (90.29 MB)
4 Implementing the Create and Delete Endpoints with SQLite (82.13 MB)
5 Creating the Basic Interface (80.55 MB)
6 Making Requests from the Front-End (198.12 MB)
7 Challenge & Solution Deleting Expenses (76.58 MB)
8 Challenge & Solution Deleting Expenses 2 (81.02 MB)
1 What Will We Be Building (29.67 MB)
2 Basic Project Setup (71.71 MB)
3 Implementing Cell Behavior (84.19 MB)
4 Adding and Removing Cell Dependencies (38.7 MB)
5 Challenge & Solution Arithmetic Magic Methods (22.69 MB)
6 Challenge & Solution Arithmetic Magic Methods 2 (59.33 MB)
1 Implementing Spreadsheet Behavior (49.2 MB)
2 Building the Interface (95.07 MB)
3 Making the Cells Update Automatically (107.89 MB)
4 Challenge & Solution Updating Cells More Efficiently (17.47 MB)
5 Challenge & Solution Updating Cells More Efficiently 2 (110.03 MB)
1 What We'll Be Building (44.42 MB)
2 Setting Up the Interface (58.99 MB)
3 Loading and Parsing HTML (85.19 MB)
4 Using User-Defined Selectors (59.67 MB)
5 Pulling Data Out Of HTML (126.81 MB)
6 Writing Scraped Data to a CSV (90.22 MB)
7 Challenge Adding and Removing Fields (25.87 MB)
8 Challenge Adding and Removing Fields 2 (82.94 MB)
1 Container Access Method Basics (23.76 MB)
2 Using Container Access Methods (67 MB)
3 Indexing Options for Container Access (64.6 MB)
4 More Advanced Indexing Options (70.65 MB)
5 Challenge Build A Matrix Class (15.34 MB)
6 Challenge Build A Matrix Class 2 (50.49 MB)
1 Iterator Magic Method Basics (16.98 MB)
2 Using Iterator Magic Methods (75.55 MB)
3 Creating Iterator Wrappers (79.67 MB)
4 What Syntaxes Trigger iter (89.4 MB)
5 Challenge Iterator Magic Methods (17.18 MB)
6 Challenge Iterator Magic Methods 2 (48.82 MB)
1 Class Hierarchies (20.82 MB)
2 Creating a Class Hierarchy (76.47 MB)
3 Polymorphism and Why it Matters (75.71 MB)
4 Duck-Typing (68.7 MB)
5 Challenge Resetting Passwords (13.51 MB)
6 Challenge Resetting Passwords 2 (35.7 MB)
1 Basics of Multiple Inheritance (41.44 MB)
2 Multiple Inheritance with Methods (56.45 MB)
3 Multiple Inheritance with Attributes (72.03 MB)
4 Method Resolution Order (MRO) (85.63 MB)
5 Challenge and Solution Method Resolution Order (25.2 MB)
6 Challenge and Solution Method Resolution Order 2 (28.72 MB)
[center]
Screenshot