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()