Identiteit Versus Gelijkheid
Dit hoofdstuk maakt onderscheid tussen identiteit en gelijkheid. Identiteit bepaalt of twee variabelen naar hetzelfde object in het geheugen verwijzen; gelijkheid bepaalt of twee objecten dezelfde waarde hebben. Inzicht in dit verschil is essentieel voor het schrijven van correcte conditionals, validaties en gegevensverwerkingslogica.
Wat is is?
iscontroleert de objectidentiteit — of twee variabelen naar hetzelfde object in het geheugen verwijzen;==controleert gelijkheid van waarden — of twee objecten dezelfde inhoud hebben.
1234567a = [1, 2] b = [1, 2] c = a print(a == b) # True - same contents print(a is b) # False - different list objects print(a is c) # True - c refers to the very same list as a
Wanneer is te gebruiken en wanneer te vermijden
- Gebruik
isbij vergelijking met singletons zoalsNone;
123value = None if value is None: print("No value")
is notis de ontkennende identiteitscontrole;
123var = 64 if var is not None: print("var has a value: ", var)
- Vermijd het gebruik van
isom gelijkheid tussen getallen of strings te controleren. Door interne caching/interning kan identiteit soms "werken", maar dit is niet betrouwbaar over verschillende uitvoeringen en omgevingen; gebruik in plaats daarvan==;
123456789x = 256 y = 256 print(x == y) # True (same value) print(x is y) # May appear True; do not rely on identity here s1 = "hello" s2 = "he" + "llo" print(s1 == s2) # True print(s1 is s2) # Implementation detail; avoid using is here
- Geef bij booleans de voorkeur aan waarheidswaardetoetsen.
123flag = True if flag: # clearer than: if flag is True print("flag is True")
1. Vul de lege plekken in met is of ==:
2. Wat is de juiste manier om te testen op "geen waarde"?
3. Welke uitspraak is aanbevolen?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 5
Identiteit Versus Gelijkheid
Veeg om het menu te tonen
Dit hoofdstuk maakt onderscheid tussen identiteit en gelijkheid. Identiteit bepaalt of twee variabelen naar hetzelfde object in het geheugen verwijzen; gelijkheid bepaalt of twee objecten dezelfde waarde hebben. Inzicht in dit verschil is essentieel voor het schrijven van correcte conditionals, validaties en gegevensverwerkingslogica.
Wat is is?
iscontroleert de objectidentiteit — of twee variabelen naar hetzelfde object in het geheugen verwijzen;==controleert gelijkheid van waarden — of twee objecten dezelfde inhoud hebben.
1234567a = [1, 2] b = [1, 2] c = a print(a == b) # True - same contents print(a is b) # False - different list objects print(a is c) # True - c refers to the very same list as a
Wanneer is te gebruiken en wanneer te vermijden
- Gebruik
isbij vergelijking met singletons zoalsNone;
123value = None if value is None: print("No value")
is notis de ontkennende identiteitscontrole;
123var = 64 if var is not None: print("var has a value: ", var)
- Vermijd het gebruik van
isom gelijkheid tussen getallen of strings te controleren. Door interne caching/interning kan identiteit soms "werken", maar dit is niet betrouwbaar over verschillende uitvoeringen en omgevingen; gebruik in plaats daarvan==;
123456789x = 256 y = 256 print(x == y) # True (same value) print(x is y) # May appear True; do not rely on identity here s1 = "hello" s2 = "he" + "llo" print(s1 == s2) # True print(s1 is s2) # Implementation detail; avoid using is here
- Geef bij booleans de voorkeur aan waarheidswaardetoetsen.
123flag = True if flag: # clearer than: if flag is True print("flag is True")
1. Vul de lege plekken in met is of ==:
2. Wat is de juiste manier om te testen op "geen waarde"?
3. Welke uitspraak is aanbevolen?
Bedankt voor je feedback!