Kom igångKom igång gratis

Skriv en klass från grunden

Du är en Python-utvecklare som skapar ett visualiseringspaket. För varje element i en visualisering vill du kunna ange elementets position, hur långt det är från andra element, samt enkelt spegla det horisontellt eller vertikalt.

Det mest grundläggande elementet i en visualisering är en enskild punkt. I den här övningen skriver du en klass för en punkt i ett plan från grunden.

Den här övningen är en del av kursen

Objektorienterad programmering i Python

Visa kurs

Övningsinstruktioner

Definiera klassen Point med följande:

  • Två attribut, x och y – koordinaterna för punkten i planet;
  • En konstruktor som tar emot två argument, x och y, och initierar motsvarande attribut. Dessa argument ska ha standardvärdet 0.0;
  • En metod distance_to_origin() som returnerar avståndet från punkten till origo. Formeln för detta är \(\sqrt{x^2 + y^2}\).
  • En metod reflect() som speglar punkten med avseende på x- eller y-axeln:
    • tar emot ett argument axis,
    • om axis="x" sätter den attributet y (inte ett stavfel!) till det negativa värdet av attributet y,
    • om axis="y" sätter den attributet x till det negativa värdet av attributet x,
    • för alla andra värden på axis skrivs ett felmeddelande ut. Reflection of a point with respect to y and x axes

Obs! Du kan använda funktionen sqrt() från antingen paketet numpy eller math, men oavsett vilket du väljer, glöm inte att importera det innan du börjar klassens definition!


Kontrollera ditt arbete genom att köra följande kod utan fel:

pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())

som ska ge utdata

(-3.0,0.0)
5.0

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Write the class Point as outlined in the instructions
Redigera och kör kod