NemProgrammering.dk logo

OOP Metoder

Lær Python programmering » OOP Metoder # 13
Inkluderet:
Livstidsadgang
27 videolektioner
7 timers undervisning
Stil spørgsmål
Kursusbevis

Information om denne video

Underviser: Simon Rotendahl   Video: 18:11   Lektion nr. 13 af 27

Hvad gør jeg nu med min klasse?

En anden smart ting ved klasser, ud over variabler, er metoder. En metode er en funktion der hører til en klasse. Det vil sige at funktionen kun virker, når bliver kørt/kaldt på et objekt. Prøv at tænk tilbage på (eller gense) videoen om lister. Her skrev vi A.append(X) (hvor X bare er noget). Append er en metode, som hører til liste klassen/typen. Den virker kun ved at vi skriver en liste (A) A.append(X), den ved så at den skal sætte X ind som et element i den liste før punktummet (A).

Det er et godt eksempel på en metode, og det er det vi skal lære her i videoen. Metoder er vigtige, da det er dem der definere adfærden af en klasse.

I næste video skal vi snakke om nedarvning!

Spørgsmål og kommentarer

Kun medlemmer med adgang til dette kursus kan stille spørgsmål og kommentere. Bliv medlem her!

  • Arne Emil H. siger:

    Hej igen SImon

    Er aniString et vilkårligt navn eller er det navnet på en fast kommando? Herudover har jeg svært ved at forstå hvorfor den forstår når vi forkorter og skriver “gen” og “spec”? Jeg forsøgte at skrive dem helt ud som vi har i vores øverste def __init__ funktion – “altså species, race, gender = aniString…” – her gav den mig fejl?! Det er vel de rigtige navne? :D

    1. Simon R. siger:

      Hej Arne Emil

      Du må undskylde det lidt sene svar, der har været lidt rod med min mail så jeg har ikke lige fået en notifikation.

      aniString er helt vilkårligt, det er bare det jeg valgte at kalde den, så længe man ændre den begge steder. Så du kan altså ligeså fint skrive
      def animalFromString(cls, blyant):
      spec, race, gen = blyant.split(‘-‘)

      Mht. at vi ‘forkorter’ gender race og species. Grunden til jeg skriver ‘forkorter’ er at vi egentlig ikke forkorter det, her kunne vi igen kalde dem alt mulig andet, vi kunne i princippet have skrevet den som
      def aniFromStr(cls,blyant):
      x,y,z = blyant.split(‘-‘)
      return(cls(x,y,z))

      Det der sker er at når vi skriver
      newHorse = “horse-islandsk-female”
      Epona = Animal.aniFromStr(newHorse)
      er at x = “horse”, y = “islandsk” og z = “female” og da cls er Animal, så har vi faktisk at cls(x,y,z) er det samme som Animal(“horse”,”islandsk”,”female”). Så derfor er gen og spec kun forkortelser i den forstand at de repræsentere det samme som gender og species gør, de er ikke det samme stykke data.

      Jeg har lavet to eksempler herunder en som bare bør virke (den første), den anden har jeg ændret lidt i __init__, enten forvirre den dig, eller så hjælper den på forståelse, du må sige til hvis du vil have lidt forklaring på den :)

      Eksempel 1 – https://pastebin.com/S9xX4uvy
      Eksempel 2 – https://pastebin.com/1ybf6xXC

      Mvh.
      Simon

  • Andrea N. siger:

    Hej,

    Hvordan downloader jeg vidoerne så jeg kan se dem uden internet?

    kh Andrea

    1. Simon R. siger:

      Hej Andrea,
      Jeg har som underviser desværre ikke noget med det at gøre.
      Det korte svar er at det ikke er muligt at downloade dem.
      Hvis du vil have et lidt længere svar, så se Kenneths spørgsmål på videoen her under, der bliver det besvaret :)

      https://www.nemprogrammering.dk/wp/dit-foerste-python-projekt/