Refactoren voor leesbaarheid
Het opsplitsen van langere functies in kleinere onderdelen helpt zowel de leesbaarheid als de modulariteit. In deze oefening ga je een functie refactoren naar kleinere onderdelen. De functie die je gaat refactoren staat hieronder. Let op: in de oefening gebruik je geen docstrings om ruimte te besparen; in een echte toepassing hoort documentatie er wél bij!
def polygon_area(n_sides, side_len):
"""Find the area of a regular polygon
:param n_sides: number of sides
:param side_len: length of polygon sides
:return: area of polygon
>>> round(polygon_area(4, 5))
25
"""
perimeter = n_sides * side_len
apothem_denominator = 2 * math.tan(math.pi / n_sides)
apothem = side_len / apothem_denominator
return perimeter * apothem / 2
Deze oefening maakt deel uit van de cursus
Software-engineeringprincipes in Python
Oefeninstructies
- Verplaats de logica voor het berekenen van de
perimeternaar de functiepolygon_perimeter. - Maak de definitie van de functie
polygon_apothemaf door de logica uit de context te verplaatsen. De modulemathis al voor je geïmporteerd. - Gebruik de nieuwe unitfuncties om de definitie van
polygon_areate voltooien. - Gebruik de meer geünitiseerde
polygon_areaom de oppervlakte te berekenen van een regelmatige zeshoek met zijden van lengte 10.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
def polygon_perimeter(n_sides, side_len):
return ____
def polygon_apothem(n_sides, side_len):
denominator = ____
return side_len / denominator
def polygon_area(n_sides, side_len):
perimeter = ____
apothem = ____
return perimeter * apothem / 2
# Print the area of a hexagon with legs of size 10
print(____(n_sides=6, side_len=10))