Python 3: Deep Dive (Part 4 - OOP)

35h 15m 32s
English
Paid
April 19, 2024
Python object oriented programming (OOP).

More

MAIN COURSE TOPICS

  • what are classes and instances

  • class data and function attributes

  • properties

  • instance, class and static methods

  • polymorphism and the role special functions play in this

  • single inheritance

  • slots

  • the descriptor protocol and its relationship to properties and functions

  • enumerations

  • exceptions

  • metaprogramming (including metaclasses)

COURSE PREREQUISITES

Please note this is NOT a beginner level course. You must have a strong working knowledge of functional Python programming as well as some practical experience developing Python applications in order to fully benefit from this course.

  • In-depth functional Python programming

  • functions, closures, scopes, decorators (using and writing them)

  • zip, sorted, any, all, and the itertools module in general

  • sequences, iterables, iterators and generators (what they are and how to implement the corresponding protocols)

  • generators, yield, and context managers

  • mapping types, hashing and relation to object equality

  • some prior knowledge of basic OOP concepts

  • know how to work with Python virtual environments and pip install

  • available Jupyter Notebook (freely available) to follow along with the course notebooks

  • how to use git

[Please note that this is not a cookbook style course - I don't show you how to solve specific problems, but rather a broad and in-depth look at how OOP works in the context of Python, that will allow you to apply these concepts and techniques to your own problems.]

Requirements:
  • Strong knowledge of functional Python
  • Closures and Decorators
  • Iterators, Iterables and Generators
  • Mapping Types, Hashing
  • Some exposure to basic OOP
Who this course is for:
  • Experienced intermediate Python developers who want a more in-depth understanding of Python OOP

What you'll learn:

  • Python Object Oriented Concepts
  • Classes
  • Methods and Binding
  • Instance, Class and Static Methods
  • Properties
  • Property Decorators
  • Single Inheritance
  • Slots
  • Descriptors
  • Enumerations
  • Exceptions
  • Metaprogramming

Watch Online Python 3: Deep Dive (Part 4 - OOP)

Join premium to watch
Go to premium
# Title Duration
1 Introduction 05:56
2 Prerequisites 08:36
3 Introduction 02:28
4 Objects and Classes - Lecture 10:50
5 Objects and Classes - Coding 04:04
6 Class Attributes - Lecture 13:09
7 Class Attributes - Coding 12:17
8 Callable Class Attributes - Lecture 02:24
9 Callable Class Attributes - Coding 03:08
10 Classes are Callables - Lecture 03:19
11 Classes are Callables - Coding 06:30
12 Data Attributes - Lecture 05:21
13 Data Attributes - Coding 11:30
14 Function Attributes - Lecture 12:36
15 Function Attributes - Coding 20:16
16 Initializing Class Instances - Lecture 06:17
17 Initializing Class Instances - Coding 05:51
18 Creating Attributes at Run-Time - Lecture 05:36
19 Creating Attributes at Run-Time - Coding 20:47
20 Properties - Lecture 16:50
21 Properties - Coding 23:32
22 Property Decorators - Lecture 12:08
23 Property Decorators - Coding 31:07
24 Read-Only and Computed Properties - Lecture 06:49
25 Read-Only and Computed Properties - Coding 24:58
26 Deleting Properties - Lecture 06:10
27 Deleting Properties - Coding 05:14
28 Some Questions on the Property Class 03:05
29 Class and Static Methods - Lecture 11:08
30 Class and Static Methods - Coding 31:00
31 Python Builtin and Standard Types 03:25
32 Class Body Scope - Lecture 05:19
33 Class Body Scope - Coding 14:37
34 Quick Recap 04:07
35 Project Description 10:54
36 Project Solution - TimeZone 15:30
37 Project Solution - Transaction Numbers 08:57
38 Project Solution - Account Numbers, Names 14:49
39 Project Solution - Preferred TimeZone 04:09
40 Project Solution - Account Balance 04:16
41 Project Solution - Interest Rate 08:29
42 Project Solution - Transaction Codes 02:49
43 Project Solution - Confirmation Codes 28:18
44 Project Solution - Transactions 23:04
45 Project Solution - Testing with unittest 50:53
46 Introduction 04:58
47 __str__ and __repr__ Methods - Lecture 03:48
48 __str__ and __repr__ Methods - Coding 08:24
49 Arithmetic Operators - Lecture 04:53
50 Arithmetic Operators - Coding 37:02
51 Rich Comparisons - Lecture 01:30
52 Rich Comparisons - Coding 18:03
53 Hashing and Equality - Lecture 01:54
54 Hashing and Equality - Coding 08:33
55 Booleans - Lecture 01:39
56 Booleans - Coding 08:27
57 Callables - Lecture 01:53
58 Callables - Coding 37:44
59 The __del__ Method - Lecture 03:55
60 The __del__ Method - Coding 15:09
61 The __format__ Method - Lecture 02:01
62 The __format__ Method - Coding 08:02
63 Project Description 06:37
64 Project Solution 31:42
65 Introduction 01:15
66 Single Inheritance - Lecture 18:23
67 Single Inheritance - Coding 11:20
68 The object Class - Lecture 04:48
69 The object Class - Coding 09:58
70 Overriding - Lecture 11:43
71 Overriding - Coding 14:00
72 Extending - Lecture 00:56
73 Extending - Coding 16:39
74 Delegating to Parent - Lecture 12:29
75 Delegating to Parent - Coding 27:21
76 Slots - Lecture 07:14
77 Slots - Coding 05:17
78 Slots and Single Inheritance - Lecture 08:08
79 Slots and Single Inheritance - Coding 15:09
80 Project 3 - Description 08:33
81 Project Solution - Approach and Setup 12:56
82 Project Solution - Validators and tests 21:44
83 Project Solution - Resources class and tests 40:05
84 Project Solution - CPU class and tests 09:09
85 Project Solution - Storage class and tests 01:59
86 Project Solution - HDD and SSD classes and tests 05:09
87 Introduction 01:15
88 Descriptors - Lecture 08:23
89 Descriptors - Coding 09:19
90 Getters and Setters - Lecture 08:16
91 Getters and Setters - Coding 21:43
92 Using as Instance Properties - Lecture 06:26
93 Using as Instance Properties - Coding 22:09
94 Strong and Weak References - Lecture 07:31
95 Strong and Weak References - Coding 20:07
96 Back to Instance Properties - Lecture 03:37
97 Back to Instance Properties - Coding 35:35
98 The __set_name__ Method - Lecture 03:05
99 The __set_name__ Method - Coding 17:41
100 Property Lookup Resolution - Lecture 04:43
101 Property Lookup Resolution - Coding 11:45
102 Properties and Descriptors - Lecture 02:39
103 Properties and Descriptors - Coding 21:26
104 Application - Example 1 11:20
105 Application - Example 2 34:25
106 Functions and Descriptors - Lecture 01:50
107 Functions and Descriptors - Coding 16:59
108 Project Description 03:22
109 Solution - Part 1 42:36
110 Solution - Part 2 08:08
111 Introduction 01:01
112 Making the case for Enumerations 08:12
113 Enumerations - Lecture 09:48
114 Enumerations - Coding 19:51
115 Aliases - Lecture 04:49
116 Aliases - Coding 09:20
117 Customizing/Extending Enums - Lecture 03:51
118 Customizing/Extending Enums - Coding 36:31
119 Automatic Values - Lecture 04:51
120 Automatic Values - Coding 21:57
121 Project Description 04:28
122 Project Solution 11:43
123 Introduction 01:20
124 Python Exceptions - Lecture 13:35
125 Python Exceptions - Coding 20:41
126 Handling Exceptions - Lecture 17:42
127 Handling Exceptions - Coding 56:21
128 Raising Exceptions - Lecture 06:19
129 Raising Exceptions - Coding 16:30
130 Custom Exceptions - Lecture 07:47
131 Custom Exceptions - Coding 54:12
132 Project Description 05:23
133 Project Solution 30:14
134 Introduction 08:51
135 Decorators and Descriptors - Review 08:51
136 The __new__ Method - Lecture 10:27
137 The __new__ Method - Coding 24:06
138 How Classes are Created - Lecture 07:12
139 How Classes are Created - Coding 12:42
140 Inheriting from type - Lecture 03:01
141 Inheriting from type - Coding 11:02
142 Metaclasses - Lecture 05:54
143 Metaclasses - Coding 08:15
144 Class Decorators - Lecture 04:43
145 Class Decorators - Coding 54:11
146 Decorator Classes - Lecture 04:05
147 Decorator Classes - Coding 18:23
148 Metaclass vs Class Decorator - Lecture 01:55
149 Metaclass vs Class Decorator - Coding 14:49
150 Metaclass Parameters - Lecture 02:45
151 Metaclass Parameters - Coding 13:17
152 The __prepare__ Method - Lecture 02:55
153 The __prepare__ Method - Coding 21:53
154 Classes, Metaclasses, and __call__ 12:36
155 Metaprogramming Application 1 33:40
156 Metaprogramming Application 2 23:11
157 Metaprogramming Application 3 31:03
158 Attribute Read Accessors - Lecture 10:06
159 Attribute Read Accessors - Coding 37:18
160 Attribute Write Accessors - Lecture 03:34
161 Attribute Write Accessors - Coding 11:39
162 Accessors - Application 19:21

Similar courses to Python 3: Deep Dive (Part 4 - OOP)

CS50's Web Programming with Python and JavaScript

CS50's Web Programming with Python and JavaScript

Duration 14 hours 3 minutes 25 seconds
Complete Python Developer in 2023: Zero to Mastery

Complete Python Developer in 2023: Zero to Mastery

Duration 30 hours 23 minutes 56 seconds
Automated Software Testing with Python

Automated Software Testing with Python

Duration 13 hours 26 minutes 55 seconds
30 Days of Python | Unlock your Python Potential

30 Days of Python | Unlock your Python Potential

Duration 9 hours 22 minutes 38 seconds
Mastering OpenAI Python APIs: Unleash ChatGPT and GPT4

Mastering OpenAI Python APIs: Unleash ChatGPT and GPT4

Duration 13 hours 4 minutes 58 seconds
Python/Django + React QR Digital Menu Builder

Python/Django + React QR Digital Menu Builder

Duration 10 hours 49 minutes 22 seconds
Eve: Building RESTful APIs with MongoDB and Flask

Eve: Building RESTful APIs with MongoDB and Flask

Duration 5 hours 6 minutes 34 seconds
The Software Designer Mindset (COMPLETE)

The Software Designer Mindset (COMPLETE)

Duration 14 hours 32 minutes 58 seconds
The Automation Bootcamp: Zero to Mastery

The Automation Bootcamp: Zero to Mastery

Duration 22 hours 39 minutes 15 seconds