Laboration 4: En klass
- Inlämningsdatum 9 nov 2021 av 18:00
- Poäng 1
- Lämnar in en filuppladdning
- Filtyper py, pdf och txt
Innehåll:
- Python - kapitel 10 i kursboken: klass, objekt, attribut, metod, __init__, __str__
Bägge gruppmedlemmarna ska lämna in labben.
Prova att använda en klass
- Skriv in denna klass i en Pythonfil:
class Fro:
def __init__(self, namn, grobarhet, pris):
self.namn = namn
self.grobarhet = grobarhet # i procent (int)
self.pris = pris # i SEK (float)
def __str__(self):
return self.namn + " " + str(self.pris)
def pris_med_moms(self):
return self.pris*1.25
def etikett(self):
print(" -----", self.namn, "-----")
print("grobarhet:", self.grobarhet, "%")
print("pris:", self.pris)
def rea(self, reapris):
self.pris = reapris - Skriv ett huvudprogram och skapa ett Fro-objekt.
- Klassen har fem metoder. Vilka är det?
- Skriv satser som testar alla metoder.
- Besök Pythonvisualiserare till Python 3, klistra in ditt program och kör steg för steg.
- Hur ritas metoderna upp?
- Hur ritas objekten upp? Hur ser du vilken klass det är?
- När en metod med parameter anropas - var syns parametervädet?
- När en metod med returvärde anropas - var syns returvärdet?
Labbuppgift: Skriv en klass Klocka
- Klockan ska ha metoden tick som tickar fram en minut när den anropas (inte synkat med en riktig klocka)
- ...och andra metoder som du tycker behövs.
- Använd modulo (operatorn %) och heltalsdivision (vid behov).
- Utskriften av klockslag ska vara på formatet tt:mm, t ex 07:05
Fundera noga över hur du ska testa att ett klock-objekt fungerar som det ska.
- Skriv tre funktioner som testar olika fall. Här är ett exempel:
def test1(klocka): klocka.tick() print("Efter ett tick är klockan", klocka)
- Provkör och spara resultatet sist i programmet. Lägg upp i Canvas som vanligt.
Krav
Krav för programmen i labb 4:
- Din Klock-klass ska uppfylla de givna kraven, och ska vara testad enligt ovan.
- Klasser och funktioner ska stå överst i programfilen, övriga satser ska stå längst ner (blanda inte).
- Krav från tidigare labbar:
- Programmet ska ha en kommentar överst med författarnas namn och datum.
- Varje funktion/metod ska ha en förklarande kommentar.
- Variabel-/funktions-/attribut-namn ska göra programmen lättare att förstå.
- Testdata ska finnas med i kommentar sist i programmen.
Efter labben
Hur tycker du att ditt eget arbete med labben fungerade? Borde du ha gjort något annorlunda? Fundera en stund, och skriv upp några tips till dig själv inför nästa labb!
Frivilliga extrauppgifter
- Läs mer om objekt i Pythons dokumentation Links to an external site.
- Skriv sedan någon metod som använder flera objekt, t ex __lt__ (för att jämföra objekt med "<") eller __add__ (för att addera objekt med "+")
- Skriv ett huvudprogram som låter användaren mata in data till objekten.
- Testa dina nya metoder
Matris
Inkludera en titel
Kom ihåg att 28 studenter redan har bedömts med den här matrisen. Om du ändrar den påverkas deras bedömningar.
Kriterier | Bedömningar |
---|---|
Vilka attribut har klassen Klocka?
|
|
Vilka metoder har klassen Klocka?
|
|
Har modulo och heltalsdivision använts?
|
|
Skrivs klockslag ut på rätt format?
|
|
Vilka fall har testats? Är det något mer som borde testas?
|
|
Står klassen och funktionerna överst i programfilen?
|
|
Vilka parametrar har funktionerna? Vilka returvärden?
|
|
Finns det en kommentar överst i programmet med författarnas namn och datum?
|
|
Är variabelnamnen lämpliga? Föreslå förbättringar!
|
|
Finns testdata med som kommentar sist i programmet?
|
|
Tips till nästa labb:
|