There are no private members, including methods, in Python. The double underscore prefix is actually just a “convention” for private members which is additionally inforced by Python as the names are further mangled. It’s not impossible to access these methods from the outside though.
In general though, there is no real need to make members really “private”. Often, a single underscore prefix is used to mark members as “internal”, and users of the types are asked to keep them alone.
Other than that, of course the reason to still have private (or internal) methods would be to extract common parts of functionality into a method so you don’t have to repeat yourself.
For more information on the missing private-ness of Python members, see this question.