I don't hate leading underscores on _private_function or _class variable, in fact I think it's a great way to semantically signal intent
The double underscore for __super_private_function doesn't make much sense to me though. I can't see a reason why this shouldn't just be a single underscore, especially when __double_underscore__ signals very important python internals