Python Language
idiomi
Ricerca…
Inizializzazione chiavi del dizionario
Preferisci il metodo dict.get
se non sei sicuro che la chiave sia presente. Ti consente di restituire un valore predefinito se la chiave non viene trovata. Il metodo tradizionale dict[key]
solleva un'eccezione KeyError
.
Piuttosto che farlo
def add_student():
try:
students['count'] += 1
except KeyError:
students['count'] = 1
Fare
def add_student():
students['count'] = students.get('count', 0) + 1
Commutazione delle variabili
Per cambiare il valore di due variabili puoi usare tuple unpacking.
x = True
y = False
x, y = y, x
x
# False
y
# True
Utilizzare il test del valore di verità
Python convertirà implicitamente qualsiasi oggetto in un valore booleano per il test, quindi usalo dove possibile.
# Good examples, using implicit truth testing
if attr:
# do something
if not attr:
# do something
# Bad examples, using specific types
if attr == 1:
# do something
if attr == True:
# do something
if attr != '':
# do something
# If you are looking to specifically check for None, use 'is' or 'is not'
if attr is None:
# do something
Generalmente questo produce un codice più leggibile e di solito è molto più sicuro quando si tratta di tipi imprevisti.
Fare clic qui per un elenco di ciò che verrà valutato su False
.
Prova per "__main__" per evitare l'esecuzione inaspettata del codice
È buona norma testare la variabile __name__
del programma chiamante prima di eseguire il codice.
import sys
def main():
# Your code starts here
# Don't forget to provide a return code
return 0
if __name__ == "__main__":
sys.exit(main())
L'utilizzo di questo modello garantisce che il codice venga eseguito solo quando ci si aspetta che lo sia; ad esempio, quando esegui il tuo file esplicitamente:
python my_program.py
Il vantaggio, tuttavia, arriva se si decide di import
il file in un altro programma (ad esempio se lo si scrive come parte di una libreria). È quindi possibile import
il file e il trap __main__
garantirà che nessun codice venga eseguito in modo imprevisto:
# A new program file
import my_program # main() is not run
# But you can run main() explicitly if you really want it to run:
my_program.main()