Controleer het returntype
De flexibiliteit van Python rond datatypen wordt vaak gezien als een van de voordelen van de taal. Soms kan het echter voor problemen zorgen als onjuiste datatypen onopgemerkt blijven. Je hebt besloten dat je, om zeker te weten dat je code precies doet wat jij wilt, expliciet de returntypes in al je functies gaat controleren en checkt of ze teruggeven wat je verwacht. Om dat te doen, ga je een decorator maken die controleert of het returntype van de gedecoreerde functie klopt.
Noot: assert is een sleutelwoord waarmee je kunt testen of iets waar is. Als je assert condition typt en condition is True, doet deze functie niets. Als condition False is, geeft deze functie een fout. Het type fout dat wordt opgegooid heet een AssertionError.
Deze oefening maakt deel uit van de cursus
Functies schrijven in Python
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
def returns_dict(func):
# Complete the returns_dict() decorator
def wrapper(____):
result = ____
assert type(result) == dict
return result
____
@returns_dict
def foo(value):
return value
try:
print(foo([1,2,3]))
except AssertionError:
print('foo() did not return a dict!')