Metoder

I artikkelen om innebygde Python-funksjoner møter vi noen av funksjonene som finnes i Python, som print(), abs(), float() og max().

Forskjellige datatyper kan også ha egne funksjoner knyttet til seg, for eksempel har datatypen str, altså streng, knyttet til seg funksjonene upper(), som konverterer all tekst til store bokstaver, og title() som konverterer første bokstav i ord til stor bokstav. Funksjoner knyttet til datatyper kalles gjerne metoder, og vi skal holde oss til dette begrepet. Men å bruke en metode er egentlig det samme som å kalle opp en funksjon.

Eksempel 1:

Når vi kjører Python-koden under, får vi skrevet ut en riktig god morgen, EN RIKTIG GOD MORGEN og En Riktig God Morgen.

hilsen = "en riktig god morgen"
print(hilsen)
print(hilsen.upper())
print(hilsen.title())

I eksempel 1 er variabelen hilsen en streng, og den har metodene upper() og title() knyttet til seg. Vi legger merke til at vi bruker en metode ved å først skrive navnet på variabelen, deretter et punktum, så navnet på metoden etterfulgt av parenteser.

Akkurat som for funksjoner varierer det hvor mange argumenter er metode skal ha. Metodene i eksempel 1 skal ikke ha noen argumenter. Et eksempel på en metode som skal ha ett argument, er count(), som teller hvor mange ganger en streng finnes inni en annen.

Eksempel 2:

Koden under vil skrive ut 2, fordi strengen "en" finnes to ganger i "en riktig god morgen".

hilsen = "en riktig god morgen"
print(hilsen.count("en"))

I både eksempel 1 og 2 ser vi at vi ikke gir inn navnet på variabelen vi bruker metoden på, som et argument. I stedet knytter vi metoden til variabelen med et punktum.

Referansesiden Python String Methods har en oversikt over alle metoder som er knyttet til strenger. Vi kan også få ei liste ved å bruke funksjonen dir(). Skriver vi dir(str) i Python, får vi ut alt som er knyttet til strenger. Denne lista er imidlertid ganske rotete, og vi ser at vi får ut masse som begynner og slutter med doble understrekinger, for eksempel __new__. Understrekingene er en konvensjon som indikerer at noe bare er tenkt til internt bruk i Python, og ikke noe vi behøver å forholde oss til.

Oppgave 1:

Vi tilordner strengen "GOD MORGEN, ALLE SAMMEN!" til variabelen hilsen:

hilsen = "GOD MORGEN, ALLE SAMMEN!"

Skriv Python-kode som skriver ut hilsen med bare små bokstaver, altså: god morgen, alle sammen!

Hint: Prøv å finne metoden du trenger på referansesiden Python String Methods.

Se løsningsforslag

Egentlig trenger vi ikke gå veien om en variabel for å bruke en metode. For eksempel vil

print("hipp hurra!".upper())

skrive ut HIPP HURRA!

Eksempler på metoder knyttet til flyttall er as_integer_ratio(), som returnerer teller og nevner i en heltallsbrøk med samme verdi som tallet, og is_integer() som returnerer True hvis tallet kan representeres som et heltall, False hvis ikke.

Eksempel 3:

Koden under vil først skrive ut (3, 4) fordi $0{,}75 = {\large \frac{3}{4}}$. Deretter False True fordi 0,75 · 3 = 2,25 ikke er et heltall og 0,75 · 4 = 3,0 er et heltall.

tall_1 = 0.75
tall_2 = 0.75 * 3
tall_3 = 0.75 * 4
print(tall_1.as_integer_ratio())
print(tall_2.is_integer(), tall_3.is_integer())

SkjermfilmSe film om metoder

Kilder

    • Matthes A. (2019). Python Crash Course. no starch press