Ce sont toutes des conventions, donc elles ne sont pas appliquées de toute façon. Pourtant, vous pouvez normalement attendre:
__somename__
Quelque chose défini dans la spécification du langage Python lui-même. Ne l'utilisez pas dans votre propre nom.
_somename
Ceci est normalement supposé être appelé via un mécanisme différent plutôt que directement. Semblable à la déclaration de quelque chose de privé dans la plupart des autres langues, mais non appliquée de quelque façon que ce soit.
__somename
C'est vraiment pas censé être appelé directement, et est mutilée en interne pour vous cesser de le faire par mégarde. Si vous avez vraiment besoin de l'appeler pour une raison quelconque, consultez la documentation pour savoir comment.
Tout ce qui précède peut s'appliquer également aux noms de fonctions, de variables ou de classes.
__method n'est pas vraiment privé, il est tronqué avec le nom de la classe mais il est toujours accessible normalement. +1 cependant. –
@Bastien - merci d'avoir amélioré la mise en forme! –
-1. parce que __x n'est pas privé au sens OOP, et ce n'est pas le but. Le but est d'éviter deux classes utilisant le même attribut par erreur. C'est la remise d'espace de noms, plutôt que privé/protégé. –