Per chiarire --- Ho dovuto pensare per un po 'a cosa significano questa domanda e risposta --- i documenti Python.org su os.environ non si preoccupano di menzionare tutti i metodi incorporati per i tipi di mappatura (come os.environ che è fondamentalmente un dizionario a cui sono stati dati metodi aggiuntivi).
Invece, menzionano principalmente i metodi aggiuntivi che hanno dato a un oggetto in os, chiamato environ e derivato da tipo dict, oltre a quelli che già ha già incorporato. Da un libro che ho su Python, la sinossi per ogni tipo di dizionario è dict.setdefault (key, default = None), e la spiegazione è che è simile a get() ma imposta dict [key] = default se key non è già in dict.
Il valore predefinito non è forse ben scelto come nome qui perché è facilmente confuso con somevariablename = defaultvalue, il modo normale di dichiarare valori predefiniti in una dichiarazione di funzione. Cioè, mentre default = None imposta sicuramente un valore predefinito, non è chiaro in che modo setdefault in alcun senso imposta essenzialmente un valore predefinito, in quanto a default può essere assegnato qualsiasi valore.
fonte
2013-02-12 20:01:41
C'è un simile metodo dict.setdefault con la stessa funzionalità. – eumiro