Provide a theoretical and practical introduction to OOP in Python for programmers that are new o Object Oriented landscape and for those that wish to understand it better.
- Basic knowledge of Python - syntax, keywords, built-in data types, creating variables, writing nd invoking simple functions, using Python console, executing Python script
- Installed Python 3.10+ and IDE eg. VS Code, PyCharm
- Office presence
- (optional) Jupyter Notbooks
- Introduction
- prior knowledge
- basics
- class
- object / instance
- Pillars of Object Oriented Programming
- Encapsulation
- class / instance attributes
- bound / class / static methods
- class initialization
- information hiding
- Inheritance
- inheritance and relationships
- multiple inheritance (MRO)
- mixin
- composition
- Polymorphism
- method overriding (super)
- method overloading (dispatch)
- callable
- iteratable
- subscriptable
- Abstraction
- abstract classes
- abstract methods
- abstract property
- Encapsulation
- Design considerations
- Cohesion
- Coupling