Un sacco di persone usano erroneamente caratteri di sottolineatura doppio per simulare membri "privati", perché i doppi underscore richiamano il mangling del codice e rendono più difficili i riferimenti ai membri al di fuori della classe. Tuttavia, in realtà non li rende inaccessibili.
Il più delle volte, aggiunge principalmente un bump stradale al test dell'unità.
In realtà il doppio meccanismo di manomissione del sottotitolo è quello di nascondere quei membri da sottoclassi che non si desidera che i valori vengano ignorati inavvertitamente. Il nome mangling non ha lo scopo di nascondere il membro ad altri programmatori; lo schema di mangling è semplice, e fare riferimento alle variabili è comunque facile.
Un singolo trattino basso è la convenzione comune per i membri interni. Questo vuol dire che siamo tutti adulti qui, e sebbene tu possa vederlo, questa variabile è intesa per uso interno. Se fai riferimento a questo, non è garantito che sarà ancora presente nelle versioni future.
Il doc Pep8 ne parla, e dice che l'uso dei doppi underscore per variabili e funzioni dovrebbe essere davvero raro.