Python OOP Tutorial 5: Special (Magic/Dunder) Methods