Beste praktijken voor voorwaardelijke uitspraken in Python
Dit artikel legt de beste praktijken voor voorwaardelijke uitspraken in Python uit.
YouTube Video
Beste praktijken voor voorwaardelijke uitspraken in Python
De if
-verklaring in Python is een fundamentele structuur voor het implementeren van voorwaardelijke vertakkingen en heeft grote invloed op de leesbaarheid en onderhoudbaarheid van code. Hier zullen we in detail de beste praktijken voor het gebruik van if
-verklaringen bespreken.
Gebruik expliciete voorwaardelijke uitdrukkingen
Conditionele uitdrukkingen beknopt en expliciet schrijven, vermijden van overbodige verklaringen.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass
- In Python kun je aangeven dat een conditie waar is door te schrijven
if conditie:
.
Meerdere voorwaarden combineren
Gebruik and
of or
bij het combineren van meerdere voorwaarden. Wanneer voorwaardelijke uitdrukkingen complex worden, kan de leesbaarheid echter afnemen. Overweeg daarom de volgende aanpassingen:.
1age = 15
2is_student = True
3
4### Bad Example
5# Complex condition
6if (age > 18 and age < 65) or (is_student and age > 15):
7 pass
8
9### Good Example
10# Improving readability
11is_working_age = 18 < age < 65
12is_eligible_student = is_student and age > 15
13
14if is_working_age or is_eligible_student:
15 pass
- Door voorwaarden op te splitsen en toe te wijzen aan variabelen, kan de leesbaarheid worden verbeterd.
and
/or
kortsluitingsevaluatie
In conditionele expressies met and
of or
, als het resultaat alleen door de linkerwaarde kan worden bepaald, vindt kortsluitingsevaluatie plaats en wordt de rechterzijde niet geëvalueerd. Dit begrijpen helpt je om onnodige verwerking te vermijden en fouten te voorkomen.
1# Example of short-circuiting with 'and'
2user = None
3if user and user.is_active:
4 # If user is None, user.is_active will NOT be evaluated
5 print("Active user found.")
6
7# Example of short-circuiting with 'or'
8if user.is_admin or expensive_check(user):
9 # If user.is_admin is True, expensive_check will NOT be called.
10 print("Access granted.")
11else:
12 print("Access denied.")
- Door gebruik te maken van kortsluitingsevaluatie kun je de verwerkingssnelheid en de veiligheid verbeteren.
Prioriteit van and
en or
and
heeft een hogere prioriteit dan or
. Daarom kun je, als je voorwaarden ondoordacht combineert, onverwachte resultaten krijgen. Het is belangrijk om haakjes te gebruiken om je bedoelingen duidelijk te maken.
1age = 15
2is_student = True
3
4### Unclear example
5# This is interpreted as: age > 18 and (age < 65 or is_student)
6if age > 18 and age < 65 or is_student:
7 pass
8
9### Clear example
10# Explicit parentheses make the intended logic obvious
11if (age > 18 and age < 65) or is_student:
12 pass
- Door haakjes te gebruiken kun je de prioriteit van
and
enor
verduidelijken, waardoor het risico op onverwachte bugs afneemt.
Begrijp Truthy en Falsy
In Python worden de volgende waarden geëvalueerd als False
:.
Geen
Onwaar
- Het getal
0
(inclusief0.0
) - Lege sequentietypen (zoals lege lijsten, tuples of strings)
- Voorbeelden:
[]
,()
,""
- Voorbeelden:
- Lege dictionary
- Voorbeeld:
{}
- Voorbeeld:
Dit benutten kan helpen om je voorwaardelijke uitdrukkingen te vereenvoudigen.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 pass
Correct gebruik van elif
en else
Gebruik elif
bij het evalueren van meerdere voorwaarden. Gebruik else
om standaardgedrag aan het einde te definiëren.
1score = 80
2
3if score >= 90:
4 grade = "A"
5elif score >= 80:
6 grade = "B"
7elif score >= 70:
8 grade = "C"
9else:
10 grade = "F"
Opmerking:
else
is niet verplicht. Als alle voorwaarden worden gedekt, kan het worden weggelaten.- Let op de volgorde van de voorwaardelijke expressies en organiseer ze logisch zonder overbodigheden.
Beperk de diepte van geneste structuur.
Diepe geneste if-structuren maken de code moeilijker te lezen. Vergelijk de volgende voorbeelden.
1def access_resource():
2 return True
3
4### Bad Example
5def deep_nest(user, resource):
6 if user.is_authenticated:
7 if user.has_permission:
8 if resource.is_available:
9 access_resource()
10
11### Good Example
12def early_return(user, resource):
13 if not user.is_authenticated:
14 return
15 if not user.has_permission:
16 return
17 if not resource.is_available:
18 return
19
20 access_resource()
- Het gebruik van vroege returns kan geneste structuren verminderen en de code conciezer maken.
Vermijd het gebruik van enkelregelige if-structuren.
Het is mogelijk om te schrijven als verklaringen in een enkele regel, maar dit kan de leesbaarheid verminderen.
1condition = False
2def do_something():
3 return True
4
5### Bad Example
6if condition: do_something()
7
8### Good Example
9if condition:
10 do_something()
- Single-line gebruiken als verklaringen alleen aanvaardbaar zijn voor korte voorwaarden of acties, maar te veel verbose code vermijden.
Vereenvoudigen met de ternary-operator of or
Voor eenvoudige conditionele vertakkingen kan het gebruik van de ternary-operator of or
je code compacter maken. Het overmatig gebruik hiervan kan je code echter moeilijk leesbaar maken, dus gebruik ze alleen voor eenvoudige en intuïtieve voorwaarden.
1is_admin = True
2
3# Regular if statement
4if is_admin:
5 role = "Administrator"
6else:
7 role = "User"
8
9# Simplified using an inline if
10role = "Administrator" if is_admin else "User"
11
12# Use 'or' to provide a default value
13name = input_name or "Guest"
- Voor eenvoudige voorwaarden kan het gebruik van de ternary-operator of
or
je code korter en begrijpelijker maken.
Voorwaardelijke expressies cachen.
Voorwaardelijke expressies die dure berekeningen of functie-aanroepen bevatten, kunnen worden gecachet in variabelen om de prestaties te verbeteren.
1def expensive_function():
2 pass
3
4def another_expensive_function():
5 pass
6
7### Bad Example
8if expensive_function() and another_expensive_function():
9 pass
10
11### Good Example
12result1 = expensive_function()
13result2 = another_expensive_function()
14if result1 and result2:
15 pass
Samenvatting
De if-structuren van Python zijn eenvoudige en krachtige hulpmiddelen, maar onjuist gebruik kan de code complex en moeilijk leesbaar maken. Door de hier geïntroduceerde beste praktijken toe te passen, kunt u de leesbaarheid, onderhoudbaarheid en efficiëntie van uw code verbeteren.
Je kunt het bovenstaande artikel volgen met Visual Studio Code op ons YouTube-kanaal. Bekijk ook het YouTube-kanaal.