OO in Python is mostly pointless
In general, object orientation is a reasonably elegant way of binding together a compound data type and functions that operate on that data type.  Let us accept this at least, and be happy to use it if we want to!  It is <i>useful</i>.<p>What are emphatically <i>not</i> pretty or useful are Python’s leading underscores to loosely enforce encapsulation. Ugh.  I’d sooner use camelCase.<p>Nor do I find charming the belligerent lack of any magical syntactic sugar for `self`. Does Python force you to pass it as an argument to make some kind of clever point?  Are there psychotic devs out there who call it something other than `self`? Yuck!<p>And why are some classes (int, str, float) allowed to be lower case but when I try to join that club I draw the ire from the linters?  The arrogance!<p>...but I still adore Python.  <i>People call these things imperfections but it’s just who we are.</i><p>PS I liked the Python5 joke a lot.