Python Language
Idioms
Zoeken…
Initialisaties van woordenboeksleutel
Geef de dict.get methode dict.get als u niet zeker weet of de sleutel aanwezig is. Hiermee kunt u een standaardwaarde retourneren als de sleutel niet wordt gevonden. De traditionele methode dict[key] zou een KeyError uitzondering veroorzaken.
In plaats van te doen
def add_student():
try:
students['count'] += 1
except KeyError:
students['count'] = 1
Doen
def add_student():
students['count'] = students.get('count', 0) + 1
Schakelvariabelen
Om de waarde van twee variabelen om te schakelen, kunt u tuple uitpakken gebruiken.
x = True
y = False
x, y = y, x
x
# False
y
# True
Gebruik waarheidswaarde testen
Python converteert elk object impliciet naar een Booleaanse waarde voor testen, dus gebruik het waar mogelijk.
# 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
Dit levert over het algemeen meer leesbare code op en is meestal veel veiliger bij het omgaan met onverwachte typen.
Klik hier voor een lijst met wat als False wordt geëvalueerd.
Test op "__main__" om onverwachte uitvoering van code te voorkomen
Het is een goede gewoonte om de variabele __name__ het aanroepende programma te __name__ voordat u uw code uitvoert.
import sys
def main():
# Your code starts here
# Don't forget to provide a return code
return 0
if __name__ == "__main__":
sys.exit(main())
Door dit patroon te gebruiken, zorgt u ervoor dat uw code alleen wordt uitgevoerd als u dit verwacht; wanneer u uw bestand bijvoorbeeld expliciet uitvoert:
python my_program.py
Het voordeel komt echter als u besluit uw bestand in een ander programma te import (bijvoorbeeld als u het schrijft als onderdeel van een bibliotheek). U kunt vervolgens uw bestand import en de __main__ trap zorgt ervoor dat er geen code onverwacht wordt uitgevoerd:
# 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()