Why does Python use ‘magic methods’?
I’ve been playing around with Python recently, and one thing I’m finding a bit odd is the extensive use of ‘magic methods’, e.g. to make its length available, an object implements a method, def __len__(self), and then it is called when you write len(obj).