This would work perfectly fine in Python. However,
- Then you don’t get dispatch (polymorphism), since this is done in python through methods. Dispatch is fundamental to getting generic algorithms to work, so the more methods you move to be freestanding functions, the less generic code you’re going to get
- You might be able to write freestanding methods yourself, but everybody else won’t. They’ll keep using methods. So you still can’t take type T written by author A and plug it into function F written by author B - because author B likely wrote F as a method.