Python 3: Deep Dive (Part 4 - OOP)
4.8 (600 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
8,089 students enrolled

Python 3: Deep Dive (Part 4 - OOP)

Python Object Oriented Programming (OOP)
4.8 (599 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
8,085 students enrolled
Created by Fred Baptiste
Last updated 3/2020
English
Current price: $129.99 Original price: $199.99 Discount: 35% off
1 day left at this price!
30-Day Money-Back Guarantee
This course includes
  • 35 hours on-demand video
  • 148 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
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
Course content
Expand all 162 lectures 35:12:17
+ Classes
32 lectures 05:45:20
Objects and Classes - Lecture
10:49
Objects and Classes - Coding
04:03
Class Attributes - Lecture
13:08
Class Attributes - Coding
12:16
Callable Class Attributes - Lecture
02:23
Callable Class Attributes - Coding
03:07
Classes are Callables - Lecture
03:18
Classes are Callables - Coding
06:29
Data Attributes - Lecture
05:20
Data Attributes - Coding
11:29
Function Attributes - Lecture
12:35
Function Attributes - Coding
20:15
Initializing Class Instances - Lecture
06:16
Initializing Class Instances - Coding
05:50
Creating Attributes at Run-Time - Lecture
05:35
Creating Attributes at Run-Time - Coding
20:46
Property Decorators - Lecture
12:07
Property Decorators - Coding
31:06
Read-Only and Computed Properties - Lecture
06:48
Read-Only and Computed Properties - Coding
24:57
Deleting Properties - Lecture
06:09
Deleting Properties - Coding
05:13
Some Questions on the Property Class
03:04
Class and Static Methods - Lecture
11:07
Class and Static Methods - Coding
30:59
Python Builtin and Standard Types
03:24
Class Body Scope - Lecture
05:18
Class Body Scope - Coding
14:36
Quick Recap
04:06
+ Project 1
11 lectures 02:51:57
Project Description
10:53
Project Solution - TimeZone
15:29
Project Solution - Transaction Numbers
08:56
Project Solution - Account Numbers, Names
14:48
Project Solution - Preferred TimeZone
04:08
Project Solution - Account Balance
04:15
Project Solution - Interest Rate
08:28
Project Solution - Transaction Codes
02:48
Project Solution - Confirmation Codes
28:17
Project Solution - Transactions
23:03
Project Solution - Testing with unittest
50:52
+ Polymorphism and Special Methods
17 lectures 02:47:38
Introduction
04:57
__str__ and __repr__ Methods - Lecture
03:47
__str__ and __repr__ Methods - Coding
08:23
Arithmetic Operators - Lecture
04:52
Arithmetic Operators - Coding
37:01
Rich Comparisons - Lecture
01:29
Rich Comparisons - Coding
18:02
Hashing and Equality - Lecture
01:53
Hashing and Equality - Coding
08:32
Booleans - Lecture
01:38
Booleans - Coding
08:26
Callables - Lecture
01:52
Callables - Coding
37:43
The __del__ Method - Lecture
03:54
The __del__ Method - Coding
15:08
The __format__ Method - Lecture
02:00
The __format__ Method - Coding
08:01
+ Project 2
2 lectures 38:17
Project Description
06:36
Project Solution
31:41
+ Single Inheritance
15 lectures 02:44:25
Introduction
01:14
Single Inheritance - Lecture
18:22
Single Inheritance - Coding
11:19
The object Class - Lecture
04:47
The object Class - Coding
09:57
Overriding - Lecture
11:42
Overriding - Coding
13:59
Extending - Lecture
00:55
Extending - Coding
16:38
Delegating to Parent - Lecture
12:28
Delegating to Parent - Coding
27:20
Slots - Lecture
07:13
Slots - Coding
05:16
Slots and Single Inheritance - Lecture
08:07
Slots and Single Inheritance - Coding
15:08
+ Project 3
7 lectures 01:39:28
Project 3 - Description
08:32
Project Solution - Approach and Setup
12:55
Project Solution - Validators and tests
21:43
Project Solution - Resources class and tests
40:04
Project Solution - CPU class and tests
09:08
Project Solution - Storage class and tests
01:58
Project Solution - HDD and SSD classes and tests
05:08
+ Descriptors
21 lectures 04:29:53
Introduction
01:14
Getters and Setters - Lecture
08:15
Getters and Setters - Coding
21:42
Using as Instance Properties - Lecture
06:25
Using as Instance Properties - Coding
22:08
Strong and Weak References - Lecture
07:30
Strong and Weak References - Coding
20:06
Back to Instance Properties - Lecture
03:36
Back to Instance Properties - Coding
35:34
The __set_name__ Method - Lecture
03:04
The __set_name__ Method - Coding
17:40
Property Lookup Resolution - Lecture
04:42
Property Lookup Resolution - Coding
11:44
Properties and Descriptors - Lecture
02:38
Properties and Descriptors - Coding
21:25
Application - Example 1
11:19
Application - Example 2
34:24
Functions and Descriptors - Lecture
01:49
Functions and Descriptors - Coding
16:58
+ Project 4
3 lectures 54:03
Project Description
03:21
Solution - Part 1
42:35
Solution - Part 2
08:07
+ Enumerations
10 lectures 02:00:01
Introduction
01:00
Making the case for Enumerations
08:11
Enumerations - Lecture
09:47
Enumerations - Coding
19:50
Aliases - Lecture
04:48
Aliases - Coding
09:19
Customizing/Extending Enums - Lecture
03:50
Customizing/Extending Enums - Coding
36:30
Automatic Values - Lecture
04:50
Automatic Values - Coding
21:56
Requirements
  • Strong knowledge of functional Python
  • Closures and Decorators
  • Iterators, Iterables and Generators
  • Mapping Types, Hashing
  • Some exposure to basic OOP
Description

This Python3: Deep Dive Part 4 course takes a closer look at object oriented programming (OOP) in Python.

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.]

Who this course is for:
  • Experienced intermediate Python developers who want a more in-depth understanding of Python OOP