...or one could just use Python without classes, just functions. TBH I never quite understood why Python has the class keyword, it's a much better language without.
The article mentions quaternions. If you make a quaternion type (class), you can define addition, multiplication, comparison, etc. for it (methods). If you represent a quaternion any other way, you can't say a * b. Or maybe you can, but I don't know how.