Advanced OOP with Python. Beyond the basics.
What you'll learn
- make better decisions when and how to use OOP features in your code
- use inheritance for nominal sub typing and prevent duplicate code
- create more efficient classes by integrating Python’s built-in language features
- adhere to the open closed principle with Polymorphism
- use protocols to achieve structural subtyping
- learn Python’s unique way to implement encapsulation
Requirements
- Beginner understanding of OOP
- ~1 year experience in Python or another programming language
Description
This course teaches Object Oriented Design in Python beyond intermediate level. The course solidifies and deepens your knowledge about classes, objects, inheritance and polymorphism. You will learn many Python specific class and object implementation details of construction, overriding and overloading. Work through many exercises that allows you to practice common OOP tasks.
Target audience
Developers who especially benefit from this course, are:
Python developers who learned the basics of OOP and want a deeper dive into the mechanics of OOP in Python
developers who bring experience from another OO programming language and want to learn how to use OOP in Python
self-taught OOP developers who want to improve their skills by learning best practices
Challenges
Students that are interested in this course often know basic OOP features but are not yet aware of Python’s unique language features that allows them to work object oriented in a Pythonic way. This can lead to verbose or inefficient code. It is my goal to teach you up-to-date, preferred ways to work with OOP in Python and make your code structured and maintainable.
What can you do after this course?
make better decisions when and how to use OOP features in your code
create more efficient classes by integrating Python’s built-in language features
embrace the dynamic character of Python by using structural type checking
Topics
Classes and Objects: Class instantiation, self, data attributes, UML, methods, __str__, __repr__, constructor
Inheritance: Inherit, extend and override methods, access to base class via super, abstract base class
OOP in a dynamic language: Dynamically typing, Static type checking, overloading
Polymorphism: Open-closed principle, type equality, interfaces and protocols
Encapsulation: Attribute visibility. name mangling, properties
Classes in Python: Class as object, class variables, class and static methods
Duration
2 hours video time, 3 hours including practicing exercises.
The teacher
This course is taught by Loek van den Ouweland, a senior software engineer with 25 years of professional experience. Loek is the creator of Wunderlist for windows, Microsoft To-do and Mahjong for Windows and loves to teach software engineering.
Who this course is for:
- Python developers who learned the basics of OOP and want a deeper dive into the mechanics of OOP in Python
- developers who bring experience from another OO programming language and want to learn how to use OOP in Python
- self-taught OOP developers who want to improve their skills by learning best practices
Instructor
Loek van den Ouweland (Wunderlist, Microsoft Todo) is a born teacher. Right from the start of his career, he was told that a programmer helps his customers best when he shows what his products can do and how they are built.
He worked in many companies as programmer and trainer and enjoys to share the secrets of programming with others.
Loek has 25 years of experience training people with different backgrounds, all ages, working in branches ranging from medical systems to manufacturing and academics to aerospace.