Göm meny
Gäller för: HT22

Temauppgift 6

Temauppgift 6 består av två delar. Delarna finns på separata sidor. Använd länkarna nedan.

Redovisning, inlämning och kompletteringar

  • Allmän information om den muntliga redovisningen, samt eventuella kompletteringar kan ni läsa om sidan Redovisning.
  • Ni får antingen 1 poäng, 3 poäng eller Komplettering på inlämningar som hör ihop med temauppgift 4-6. Vid Komplettering får ni instruktioner om vad som ska kompletteras.

Att redovisa

  • Demonstrera testet av Del 1, Uppgift 2 och förklara hur er metod __str__() i klassen Person fungerar.
  • Demonstrera att ert att-göra-lista-program från Del 2 fungerar som det ska.
  • Förklara skillnaden mellan klasser och instanser och exemplifiera med hjälp av koden ni skrivit till Temauppgift 6.
  • Förklara vilket syfte som argumentet self har i en metod.
  • Om ni siktar på 3 poäng, gå också igenom 3 poängs-delen för Del 2 (inklusive ev. uppdaterat klassdiagram).

Poäng

För 1 poäng på Temauppgift 6 ska följande göras:

För 3 poäng på Temauppgift 6 ska följande göras:

Uppgiftsnivåer och betyg

Se sidan Betyg och kursmoment för information om kraven för att få VG på kursmomentet LAB2 (Temauppgift 4-6).

Uppgradera temauppgiftsbedömning

  • Temauppgift 3: Om ni redan fått Godkänt, men vill ha Väl godkänt, boka tid med en handledare för ett försök att redovisa det som behövs för Väl godkänt.
  • Temauppgift 4-5: Om ni redan har fått 1 poäng, men vill ha 3 poäng boka tid med en handledare för ett försök att redovisa det som behövs för 3 poäng.
  • Temauppgift 6: Om ni redan har fått 1 poäng, men vill sikta på 3 poäng på temauppgift 6. Skicka ett e-postmeddelande till Jody.

OBS! Deadlines finns för ovanstående.

Kod- och kommentarskrav

PEP8 och PEP257

All kod ska följa kodstandarderna [PEP 8][pep8], samt [PEP 257][pep257] och kontrolleras med programmen pycodestyle och pep257 (aktivera rätt virtuell miljö, se Tips: Kontrollera PEP 8 och PEP 257).

Era funktionskommentarer ska följa PEP257 och vara på den nivån att de inte beskriver explicita implementationsdetaljer.

En bra funktionskommentar består av en kärnfull mening på en rad, som beskriver resultatet av att använda funktionen och vad den returnerar om den gör det. Vid behov beskrivs funktionens argument på efterföljande rader i funktionskommentaren.

Variabeler och kommentarer i kod

  1. Inga variabelnamn får bestå av endast en enskild bokstav.
  2. Alla satser som består av fler än en rad ska ha en tillhörande kommentar. Dvs if-satser, loopar, funktioner och metoder. Kommentaren ska inte vara en “innantilläsning” av koden den hör till. Använd rätt kommentarsmarkering (t.ex. """ för funktions- metodkommentarer, # för kommentarer i löpande kod, se PEP8 och PEP257).
  3. Minimera användningen av hårdkodade siffror, använd istället variabler med förklarande namn.

Se exempel tillhörande [Temauppgift 5]({{ ref “temauppg5.md#kodkrav” }}).

Dela upp kod vid behov

  • Dela upp er kod i delfunktioner/delmetoder vid behov:
    • när ni stöter på kod som ni upprepar, bryt ut koden (lägg koden i en funktion/metod)
    • skicka nödvändig information som argument till funktionen och låt den returnera eventuellt resultat, använd inte globala variabler
    • dela även upp er kod i fler funktioner/metoder när den blir för lång

Som tumregler, försöka se till att era funktioner/metoder

  • endast gör en sak
  • inte är längre än 15 rader (gärna kortare) exklusive kommentarer

Använd __str__() på rätt sätt

  • Se till att använda metoden __str__() på rätt sätt, dvs att om en instans av en klass t.ex. ska skrivas ut, så ska klassen implementera __str__() och den ska användas.

När Python ska konvertera ett icke-strängobjekt till en sträng använder Python metoden __str__(). Metoden används t.ex. när man skriver ut ett objekt, eller när en explicit konvertering till en sträng efterfrågas.

# skapa en instans av klassen Task
task = Task("laga mat")
# skriv ut Task-objektet, print kommer att använda instansens __str__-metod
print(task)
# explicit konvertering av Task-instansen till en sträng. Python kommer använda
# instansens __str__-metod
t_string = str(task)

Sidansvarig: Jody Foo
Senast uppdaterad: 2022-08-26