Lærebok, kapittel 9:
(- 9.3: 5 sider)
Python er et objekt-orientert språk
Alt i Python er objekter:
i = 22
print(type(i))
x = 12.3
print(type(x))
S = "Saturn"
print(type(S))
B = True
print(type(B))
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
r1 = Rectangle(12, 36)
print(r1.width)
print(r1.height)
print(r1.area())
Vi kan lage våre egne klasser for å utvide Python-språket.
Klassedefinisjon
Bruk av klasse-definisjonen:
Vi oppretter objekter (instansiering)
def area(width, height):
return width * height
width = 12
height = 36
print(width)
print(height)
print(area(width, height))
Funksjonsdefinisjon
Bruk av funksjondefinisjon
Vi kan lage våre egne funksjoner for å utvide Python-språket.
Hvis vi bruker funksjoner må vi ha kontroll på dataene våre utenfor funksjonen.
Hvis vi lager klasser og deretter instansierer objekter basert på klassedefinisjonen, kan vi legge dataene våre inne i objektene.
rectangle_A_area = area(width, height) # width og height er egne variabler
rectangle_A_area = A.area() # width og height ligger inne i A
# legg merke til dot-notasjonen
Terminologi:
Funksjoner som er definert som en del av en klassedefinisjon kalles metoder
Frittstående funksjoner kalles funksjoner
Hvordan utvide Python-språket (i INGG1001):
- oppretting og bruk av variabler
- oppretting og bruk av funksjoner
- bruk av klasser/objekter (ikke lage egne klasser)
- bruke Standard Library
import math
print("sinus til en vinkel på 60 grader er " + str(math.sin(math.radians(60))))
Python-språket kan utvides ved å importere nye ord
math er en del av Python Standard Library
str-klassen har mange innebygde metoder,
se dokumentasjonen her:
https://docs.python.org/3.7/library/stdtypes.html#text-sequence-type-str
og eksempler på bruk her:
https://folk.ntnu.no/sverrsti/INGG1001-H2019/String_methods.html
viktige lærebok-kapitler: